All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 58
    functionName: raksha::analysis::taint::InferenceRulesTest::InferenceRulesTest
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InferenceRulesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: '& rules() const'
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: InferenceRules
    signature: InferenceRules & rules() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: '& plus() const'
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ir::Operation
    signature: ir::Operation & plus() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: '& minus() const'
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ir::Operation
    signature: ir::Operation & minus() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: '& unregistered_op() const'
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ir::Operation
    signature: ir::Operation & unregistered_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: raksha::analysis::taint::InferenceRulesTest::tag_a
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TagId
    signature: TagId tag_a() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: raksha::analysis::taint::InferenceRulesTest::tag_b
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TagId
    signature: TagId tag_b() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:79,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:79,1
    - Dst: tag_a
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:79,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:79,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:80,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:80,1
    - Dst: tag_b
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:80,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - tag_b
    - rules
    - Eq
    - EXPECT_THAT
    - tag_a
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetTagNameReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:84,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:84,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - rules
    - EXPECT_THAT
    - Eq
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetTagNameReturnsNullIfTagIdUnknown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:88,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:88,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:88,1
    - Dst: tag_a
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:88,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:89,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:89,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:89,1
    - Dst: tag_b
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - tag_b
    - rules
    - Eq
    - EXPECT_THAT
    - tag_a
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetTagIdReturnsCorrectId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:93,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:93,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - rules
    - EXPECT_THAT
    - Eq
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetTagIdReturnsNullIfTagIdUnknown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:97,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:97,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:98,1
    - Dst: std::make_optional
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:98,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:99,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:99,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:100,1
    - Dst: std::make_optional
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - rules
    - EXPECT_THAT
    - Eq
    - std::make_optional
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetOutputRulesForActionReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:104,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:104,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - rules
    - EXPECT_THAT
    - Eq
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetOutputRulesForActionReturnsNullForUnknownAction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:108,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:108,1
    - Dst: plus
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:108,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:109,1
    - Dst: std::make_optional
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:109,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:110,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:110,1
    - Dst: minus
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:110,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:111,1
    - Dst: std::make_optional
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - rules
    - Eq
    - std::make_optional
    - plus
    - EXPECT_THAT
    - minus
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetOutputRulesForOperationReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:116,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:116,1
    - Dst: unregistered_op
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:116,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - unregistered_op
    - rules
    - EXPECT_THAT
    - Eq
    linkageType: ''
    returnType: void
    signature: "void TEST_F(InferenceRulesTest,\n       GetOutputRulesForOperationReturnsNullForUnknownOperation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 58
    functionName: raksha::analysis::taint::InferenceRulesTest::InferenceRulesTest
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InferenceRulesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: '& rules() const'
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: InferenceRules
    signature: InferenceRules & rules() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: '& plus() const'
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ir::Operation
    signature: ir::Operation & plus() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: '& minus() const'
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ir::Operation
    signature: ir::Operation & minus() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: '& unregistered_op() const'
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ir::Operation
    signature: ir::Operation & unregistered_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: raksha::analysis::taint::InferenceRulesTest::tag_a
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TagId
    signature: TagId tag_a() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: raksha::analysis::taint::InferenceRulesTest::tag_b
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TagId
    signature: TagId tag_b() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:79,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:79,1
    - Dst: tag_a
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:79,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:79,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:80,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:80,1
    - Dst: tag_b
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:80,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - tag_b
    - rules
    - Eq
    - EXPECT_THAT
    - tag_a
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetTagNameReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:84,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:84,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - rules
    - EXPECT_THAT
    - Eq
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetTagNameReturnsNullIfTagIdUnknown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:88,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:88,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:88,1
    - Dst: tag_a
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:88,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:89,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:89,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:89,1
    - Dst: tag_b
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - tag_b
    - rules
    - Eq
    - EXPECT_THAT
    - tag_a
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetTagIdReturnsCorrectId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:93,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:93,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - rules
    - EXPECT_THAT
    - Eq
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetTagIdReturnsNullIfTagIdUnknown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:97,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:97,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:98,1
    - Dst: std::make_optional
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:98,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:99,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:99,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:100,1
    - Dst: std::make_optional
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - rules
    - EXPECT_THAT
    - Eq
    - std::make_optional
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetOutputRulesForActionReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:104,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:104,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - rules
    - EXPECT_THAT
    - Eq
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetOutputRulesForActionReturnsNullForUnknownAction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:108,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:108,1
    - Dst: plus
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:108,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:109,1
    - Dst: std::make_optional
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:109,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:110,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:110,1
    - Dst: minus
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:110,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:111,1
    - Dst: std::make_optional
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - rules
    - Eq
    - std::make_optional
    - plus
    - EXPECT_THAT
    - minus
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetOutputRulesForOperationReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:116,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:116,1
    - Dst: unregistered_op
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:116,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - unregistered_op
    - rules
    - EXPECT_THAT
    - Eq
    linkageType: ''
    returnType: void
    signature: "void TEST_F(InferenceRulesTest,\n       GetOutputRulesForOperationReturnsNullForUnknownOperation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 58
    functionName: raksha::analysis::taint::InferenceRulesTest::InferenceRulesTest
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InferenceRulesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: '& rules() const'
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: InferenceRules
    signature: InferenceRules & rules() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: '& plus() const'
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ir::Operation
    signature: ir::Operation & plus() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: '& minus() const'
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ir::Operation
    signature: ir::Operation & minus() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: '& unregistered_op() const'
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ir::Operation
    signature: ir::Operation & unregistered_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: raksha::analysis::taint::InferenceRulesTest::tag_a
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TagId
    signature: TagId tag_a() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: raksha::analysis::taint::InferenceRulesTest::tag_b
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TagId
    signature: TagId tag_b() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:79,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:79,1
    - Dst: tag_a
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:79,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:79,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:80,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:80,1
    - Dst: tag_b
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:80,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - tag_b
    - rules
    - Eq
    - EXPECT_THAT
    - tag_a
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetTagNameReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:84,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:84,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - rules
    - EXPECT_THAT
    - Eq
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetTagNameReturnsNullIfTagIdUnknown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:88,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:88,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:88,1
    - Dst: tag_a
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:88,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:89,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:89,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:89,1
    - Dst: tag_b
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - tag_b
    - rules
    - Eq
    - EXPECT_THAT
    - tag_a
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetTagIdReturnsCorrectId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:93,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:93,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - rules
    - EXPECT_THAT
    - Eq
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetTagIdReturnsNullIfTagIdUnknown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:97,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:97,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:98,1
    - Dst: std::make_optional
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:98,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:99,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:99,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:100,1
    - Dst: std::make_optional
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - rules
    - EXPECT_THAT
    - Eq
    - std::make_optional
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetOutputRulesForActionReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:104,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:104,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - rules
    - EXPECT_THAT
    - Eq
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetOutputRulesForActionReturnsNullForUnknownAction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:108,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:108,1
    - Dst: plus
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:108,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:109,1
    - Dst: std::make_optional
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:109,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:110,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:110,1
    - Dst: minus
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:110,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:111,1
    - Dst: std::make_optional
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - rules
    - Eq
    - std::make_optional
    - plus
    - EXPECT_THAT
    - minus
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetOutputRulesForOperationReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:116,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:116,1
    - Dst: unregistered_op
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:116,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - unregistered_op
    - rules
    - EXPECT_THAT
    - Eq
    linkageType: ''
    returnType: void
    signature: "void TEST_F(InferenceRulesTest,\n       GetOutputRulesForOperationReturnsNullForUnknownOperation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 58
    functionName: raksha::analysis::taint::InferenceRulesTest::InferenceRulesTest
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InferenceRulesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: '& rules() const'
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: InferenceRules
    signature: InferenceRules & rules() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: '& plus() const'
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ir::Operation
    signature: ir::Operation & plus() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: '& minus() const'
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ir::Operation
    signature: ir::Operation & minus() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: '& unregistered_op() const'
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ir::Operation
    signature: ir::Operation & unregistered_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: raksha::analysis::taint::InferenceRulesTest::tag_a
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TagId
    signature: TagId tag_a() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: raksha::analysis::taint::InferenceRulesTest::tag_b
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TagId
    signature: TagId tag_b() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:79,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:79,1
    - Dst: tag_a
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:79,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:79,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:80,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:80,1
    - Dst: tag_b
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:80,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - tag_b
    - rules
    - Eq
    - EXPECT_THAT
    - tag_a
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetTagNameReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:84,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:84,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - rules
    - EXPECT_THAT
    - Eq
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetTagNameReturnsNullIfTagIdUnknown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:88,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:88,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:88,1
    - Dst: tag_a
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:88,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:89,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:89,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:89,1
    - Dst: tag_b
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - tag_b
    - rules
    - Eq
    - EXPECT_THAT
    - tag_a
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetTagIdReturnsCorrectId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:93,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:93,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - rules
    - EXPECT_THAT
    - Eq
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetTagIdReturnsNullIfTagIdUnknown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:97,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:97,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:98,1
    - Dst: std::make_optional
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:98,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:99,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:99,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:100,1
    - Dst: std::make_optional
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - rules
    - EXPECT_THAT
    - Eq
    - std::make_optional
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetOutputRulesForActionReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:104,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:104,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - rules
    - EXPECT_THAT
    - Eq
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetOutputRulesForActionReturnsNullForUnknownAction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:108,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:108,1
    - Dst: plus
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:108,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:109,1
    - Dst: std::make_optional
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:109,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:110,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:110,1
    - Dst: minus
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:110,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:111,1
    - Dst: std::make_optional
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - rules
    - Eq
    - std::make_optional
    - plus
    - EXPECT_THAT
    - minus
    linkageType: ''
    returnType: void
    signature: void TEST_F(InferenceRulesTest, GetOutputRulesForOperationReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:116,1
    - Dst: rules
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:116,1
    - Dst: unregistered_op
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:116,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_test.cc:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: raksha::analysis::taint::TEST_F
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_test.cc
    functionUses: 0
    functionsReached:
    - unregistered_op
    - rules
    - EXPECT_THAT
    - Eq
    linkageType: ''
    returnType: void
    signature: "void TEST_F(InferenceRulesTest,\n       GetOutputRulesForOperationReturnsNullForUnknownOperation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - index
    - ' container'
    argTypes:
    - typename C::size_type
    - C
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: raksha::analysis::taint::IndexInBounds
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics.cc
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool IndexInBounds(typename C::size_type index, const C& container)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - index
    - ' container'
    argTypes:
    - typename C::size_type
    - C
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: raksha::analysis::taint::IndexInBounds
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics.cc
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool IndexInBounds(typename C::size_type index, const C& container)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:28,1
    - Dst: raksha::analysis::taint::AbstractSemantics::GetInitialState
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:29,1
    - Dst: raksha::ir::Value::MakeDefaultOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:30,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:34,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:35,1
    - Dst: Join
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:37,1
    - Dst: AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:39,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:41,1
    - Dst: AbstractIfcTags::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' operation'
    - ' input_states'
    argTypes:
    - ir::Operation
    - std::vector<AbstractIfcTags>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 42
    functionName: raksha::analysis::taint::AbstractSemantics::ApplyDefaultOperationTransformer
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics.cc
    functionUses: 0
    functionsReached:
    - AbstractIfcTags::IsBottom
    - empty
    - AbstractIfcTags
    - raksha::ir::Value::MakeDefaultOperationResultValue
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    - Join
    - raksha::common::utils::fold
    - raksha::analysis::taint::AbstractSemantics::GetInitialState
    - AbstractIfcTags::secrecy_tags
    linkageType: ''
    returnType: AbstractIfcTags
    signature: "AbstractIfcTags AbstractSemantics::ApplyDefaultOperationTransformer(\n
      \   const ir::Operation& operation,\n    const std::vector<AbstractIfcTags>&
      input_states) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:51,1
    - Dst: absl::c_any_of
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:74,1
    - Dst: IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:75,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:77,1
    - Dst: secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:79,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:80,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:81,1
    - Dst: TagIdSet
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:81,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:87,1
    - Dst: raksha::analysis::taint::IndexInBounds
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:87,1
    - Dst: integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:91,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:93,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:97,1
    - Dst: absl::c_copy
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:98,1
    - Dst: std::inserter
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:99,1
    - Dst: TagIdSet::end
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:99,1
    - Dst: contains
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:103,1
    - Dst: TagIdSet::insert
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:104,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:109,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:111,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - ' merge_tags'
    - ' input_states'
    - ' current_value'
    argTypes:
    - MergeIntegrityTags
    - std::vector<AbstractIfcTags>
    - AbstractIfcTags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 112
    functionName: raksha::analysis::taint::InteprepretMergeIntegrityTags
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics.cc
    functionUses: 0
    functionsReached:
    - TagIdSet::end
    - std::inserter
    - IsBottom
    - std::make_pair
    - raksha::analysis::taint::IndexInBounds
    - contains
    - integrity_tags
    - TagIdSet
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    - AbstractIfcTags
    - absl::c_copy
    - raksha::common::utils::fold
    - std::move
    - secrecy_tags
    - CHECK
    - absl::c_any_of
    - TagIdSet::insert
    linkageType: ''
    returnType: AbstractIfcTags
    signature: "AbstractIfcTags InteprepretMergeIntegrityTags(\n    const MergeIntegrityTags&
      merge_tags,\n    const std::vector<AbstractIfcTags>& input_states,\n    const
      AbstractIfcTags& current_value)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:51,1
    - Dst: absl::c_any_of
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:74,1
    - Dst: IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:75,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:77,1
    - Dst: secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:79,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:80,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:81,1
    - Dst: TagIdSet
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:81,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:87,1
    - Dst: raksha::analysis::taint::IndexInBounds
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:87,1
    - Dst: integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:91,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:93,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:97,1
    - Dst: absl::c_copy
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:98,1
    - Dst: std::inserter
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:99,1
    - Dst: TagIdSet::end
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:99,1
    - Dst: contains
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:103,1
    - Dst: TagIdSet::insert
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:104,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:109,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:111,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - ' merge_tags'
    - ' input_states'
    - ' current_value'
    argTypes:
    - MergeIntegrityTags
    - std::vector<AbstractIfcTags>
    - AbstractIfcTags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 112
    functionName: raksha::analysis::taint::InteprepretMergeIntegrityTags
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics.cc
    functionUses: 0
    functionsReached:
    - TagIdSet::end
    - std::inserter
    - IsBottom
    - std::make_pair
    - raksha::analysis::taint::IndexInBounds
    - contains
    - integrity_tags
    - TagIdSet
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    - AbstractIfcTags
    - absl::c_copy
    - raksha::common::utils::fold
    - std::move
    - secrecy_tags
    - CHECK
    - absl::c_any_of
    - TagIdSet::insert
    linkageType: ''
    returnType: AbstractIfcTags
    signature: "AbstractIfcTags InteprepretMergeIntegrityTags(\n    const MergeIntegrityTags&
      merge_tags,\n    const std::vector<AbstractIfcTags>& input_states,\n    const
      AbstractIfcTags& current_value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: absl::c_any_of
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:119,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:121,1
    - Dst: IndexInBounds
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:121,1
    - Dst: IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:125,1
    - Dst: HasIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:126,1
    - Dst: std::visit
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:134,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:137,1
    - Dst: IndexInBounds
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:137,1
    - Dst: IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:143,1
    - Dst: SetIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:146,1
    - Dst: ClearSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:148,1
    - Dst: SetSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:150,1
    - Dst: InteprepretMergeIntegrityTags
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - ' rule'
    - ' operation'
    - ' input_states'
    - ' current_value'
    argTypes:
    - InferenceRule
    - ir::Operation
    - std::vector<AbstractIfcTags>
    - AbstractIfcTags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 160
    functionName: raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics.cc
    functionUses: 0
    functionsReached:
    - IsBottom
    - HasIntegrity
    - std::visit
    - InteprepretMergeIntegrityTags
    - IndexInBounds
    - CHECK
    - SetSecrecy
    - SetIntegrity
    - ClearSecrecy
    - absl::c_any_of
    linkageType: ''
    returnType: AbstractIfcTags
    signature: "AbstractIfcTags AbstractSemantics::InterpretInferenceRule(\n    const
      InferenceRule& rule, const ir::Operation& operation,\n    const std::vector<AbstractIfcTags>&
      input_states,\n    const AbstractIfcTags& current_value) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractSemantics::ApplyDefaultOperationTransformer
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:166,1
    - Dst: NumberOfOutputs
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:167,1
    - Dst: GetOutputRulesForOperation
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:170,1
    - Dst: auto::has_value
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:171,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:175,1
    - Dst: IndexInBounds
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:175,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:178,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:179,1
    - Dst: raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' operation'
    - ' input_states'
    argTypes:
    - ir::Operation
    - std::vector<AbstractIfcTags>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 189
    functionName: raksha::analysis::taint::AbstractSemantics::ApplyOperationTransformer
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics.cc
    functionUses: 0
    functionsReached:
    - NumberOfOutputs
    - raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
    - auto::has_value
    - AbstractIfcTags
    - raksha::analysis::taint::AbstractSemantics::ApplyDefaultOperationTransformer
    - IndexInBounds
    - raksha::common::utils::fold
    - CHECK
    - GetOutputRulesForOperation
    linkageType: ''
    returnType: std::vector<AbstractIfcTags>
    signature: "std::vector<AbstractIfcTags> AbstractSemantics::ApplyOperationTransformer(\n
      \   const ir::Operation& operation,\n    const std::vector<AbstractIfcTags>&
      input_states) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - ir::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: raksha::analysis::taint::AbstractSemantics::GetInitialState
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics.cc
    functionUses: 1
    functionsReached:
    - AbstractIfcTags
    linkageType: ''
    returnType: AbstractIfcTags
    signature: "AbstractIfcTags AbstractSemantics::GetInitialState(\n    const ir::Value&
      value) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - index
    - ' container'
    argTypes:
    - typename C::size_type
    - C
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: raksha::analysis::taint::IndexInBounds
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics.cc
    functionUses: 2
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool IndexInBounds(typename C::size_type index, const C& container)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - index
    - ' container'
    argTypes:
    - typename C::size_type
    - C
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: raksha::analysis::taint::IndexInBounds
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics.cc
    functionUses: 2
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool IndexInBounds(typename C::size_type index, const C& container)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:28,1
    - Dst: raksha::analysis::taint::AbstractSemantics::GetInitialState
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:29,1
    - Dst: raksha::ir::Value::MakeDefaultOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:30,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:34,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:35,1
    - Dst: Join
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:37,1
    - Dst: AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:39,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:41,1
    - Dst: AbstractIfcTags::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' operation'
    - ' input_states'
    argTypes:
    - ir::Operation
    - std::vector<AbstractIfcTags>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 42
    functionName: raksha::analysis::taint::AbstractSemantics::ApplyDefaultOperationTransformer
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics.cc
    functionUses: 1
    functionsReached:
    - AbstractIfcTags::IsBottom
    - empty
    - AbstractIfcTags
    - raksha::ir::Value::MakeDefaultOperationResultValue
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    - Join
    - raksha::common::utils::fold
    - raksha::analysis::taint::AbstractSemantics::GetInitialState
    - AbstractIfcTags::secrecy_tags
    linkageType: ''
    returnType: AbstractIfcTags
    signature: "AbstractIfcTags AbstractSemantics::ApplyDefaultOperationTransformer(\n
      \   const ir::Operation& operation,\n    const std::vector<AbstractIfcTags>&
      input_states) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:51,1
    - Dst: absl::c_any_of
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:74,1
    - Dst: IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:75,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:77,1
    - Dst: secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:79,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:80,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:81,1
    - Dst: TagIdSet
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:81,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:87,1
    - Dst: raksha::analysis::taint::IndexInBounds
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:87,1
    - Dst: integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:91,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:93,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:97,1
    - Dst: absl::c_copy
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:98,1
    - Dst: std::inserter
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:99,1
    - Dst: TagIdSet::end
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:99,1
    - Dst: contains
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:103,1
    - Dst: TagIdSet::insert
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:104,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:109,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:111,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - ' merge_tags'
    - ' input_states'
    - ' current_value'
    argTypes:
    - MergeIntegrityTags
    - std::vector<AbstractIfcTags>
    - AbstractIfcTags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 112
    functionName: raksha::analysis::taint::InteprepretMergeIntegrityTags
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics.cc
    functionUses: 0
    functionsReached:
    - TagIdSet::end
    - std::inserter
    - IsBottom
    - std::make_pair
    - raksha::analysis::taint::IndexInBounds
    - contains
    - integrity_tags
    - TagIdSet
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    - AbstractIfcTags
    - absl::c_copy
    - raksha::common::utils::fold
    - std::move
    - secrecy_tags
    - CHECK
    - absl::c_any_of
    - TagIdSet::insert
    linkageType: ''
    returnType: AbstractIfcTags
    signature: "AbstractIfcTags InteprepretMergeIntegrityTags(\n    const MergeIntegrityTags&
      merge_tags,\n    const std::vector<AbstractIfcTags>& input_states,\n    const
      AbstractIfcTags& current_value)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:51,1
    - Dst: absl::c_any_of
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:74,1
    - Dst: IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:75,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:77,1
    - Dst: secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:79,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:80,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:81,1
    - Dst: TagIdSet
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:81,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:87,1
    - Dst: raksha::analysis::taint::IndexInBounds
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:87,1
    - Dst: integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:91,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:93,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:97,1
    - Dst: absl::c_copy
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:98,1
    - Dst: std::inserter
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:99,1
    - Dst: TagIdSet::end
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:99,1
    - Dst: contains
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:103,1
    - Dst: TagIdSet::insert
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:104,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:109,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:111,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - ' merge_tags'
    - ' input_states'
    - ' current_value'
    argTypes:
    - MergeIntegrityTags
    - std::vector<AbstractIfcTags>
    - AbstractIfcTags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 112
    functionName: raksha::analysis::taint::InteprepretMergeIntegrityTags
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics.cc
    functionUses: 0
    functionsReached:
    - TagIdSet::end
    - std::inserter
    - IsBottom
    - std::make_pair
    - raksha::analysis::taint::IndexInBounds
    - contains
    - integrity_tags
    - TagIdSet
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    - AbstractIfcTags
    - absl::c_copy
    - raksha::common::utils::fold
    - std::move
    - secrecy_tags
    - CHECK
    - absl::c_any_of
    - TagIdSet::insert
    linkageType: ''
    returnType: AbstractIfcTags
    signature: "AbstractIfcTags InteprepretMergeIntegrityTags(\n    const MergeIntegrityTags&
      merge_tags,\n    const std::vector<AbstractIfcTags>& input_states,\n    const
      AbstractIfcTags& current_value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: absl::c_any_of
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:119,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:121,1
    - Dst: IndexInBounds
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:121,1
    - Dst: IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:125,1
    - Dst: HasIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:126,1
    - Dst: std::visit
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:134,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:137,1
    - Dst: IndexInBounds
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:137,1
    - Dst: IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:143,1
    - Dst: SetIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:146,1
    - Dst: ClearSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:148,1
    - Dst: SetSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:150,1
    - Dst: InteprepretMergeIntegrityTags
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - ' rule'
    - ' operation'
    - ' input_states'
    - ' current_value'
    argTypes:
    - InferenceRule
    - ir::Operation
    - std::vector<AbstractIfcTags>
    - AbstractIfcTags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 160
    functionName: raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics.cc
    functionUses: 1
    functionsReached:
    - IsBottom
    - HasIntegrity
    - std::visit
    - InteprepretMergeIntegrityTags
    - IndexInBounds
    - CHECK
    - SetSecrecy
    - SetIntegrity
    - ClearSecrecy
    - absl::c_any_of
    linkageType: ''
    returnType: AbstractIfcTags
    signature: "AbstractIfcTags AbstractSemantics::InterpretInferenceRule(\n    const
      InferenceRule& rule, const ir::Operation& operation,\n    const std::vector<AbstractIfcTags>&
      input_states,\n    const AbstractIfcTags& current_value) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractSemantics::ApplyDefaultOperationTransformer
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:166,1
    - Dst: NumberOfOutputs
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:167,1
    - Dst: GetOutputRulesForOperation
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:170,1
    - Dst: auto::has_value
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:171,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:175,1
    - Dst: IndexInBounds
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:175,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:178,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:179,1
    - Dst: raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' operation'
    - ' input_states'
    argTypes:
    - ir::Operation
    - std::vector<AbstractIfcTags>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 189
    functionName: raksha::analysis::taint::AbstractSemantics::ApplyOperationTransformer
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics.cc
    functionUses: 0
    functionsReached:
    - NumberOfOutputs
    - raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
    - auto::has_value
    - AbstractIfcTags
    - raksha::analysis::taint::AbstractSemantics::ApplyDefaultOperationTransformer
    - IndexInBounds
    - raksha::common::utils::fold
    - CHECK
    - GetOutputRulesForOperation
    linkageType: ''
    returnType: std::vector<AbstractIfcTags>
    signature: "std::vector<AbstractIfcTags> AbstractSemantics::ApplyOperationTransformer(\n
      \   const ir::Operation& operation,\n    const std::vector<AbstractIfcTags>&
      input_states) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_semantics.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - ir::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: raksha::analysis::taint::AbstractSemantics::GetInitialState
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics.cc
    functionUses: 2
    functionsReached:
    - AbstractIfcTags
    linkageType: ''
    returnType: AbstractIfcTags
    signature: "AbstractIfcTags AbstractSemantics::GetInitialState(\n    const ir::Value&
      value) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:35,1
    - Dst: insert
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:38,1
    - Dst: size
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:38,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: raksha::analysis::taint::InferenceRulesBuilder::InferenceRulesBuilder
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder.h
    functionUses: 0
    functionsReached:
    - size
    - std::move
    - CHECK
    - insert
    linkageType: ''
    returnType: void
    signature: void InferenceRulesBuilder(std::vector<std::string> seed_tag_names
      = {})
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRules
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:47,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:47,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:47,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:48,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: raksha::analysis::taint::InferenceRulesBuilder::Build
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder.h
    functionUses: 0
    functionsReached:
    - InferenceRules
    - std::move
    linkageType: ''
    returnType: InferenceRules
    signature: InferenceRules Build()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:55,1
    - Dst: std::string
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:55,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' operation'
    - action
    argTypes:
    - ir::Operation
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: raksha::analysis::taint::InferenceRulesBuilder::MarkOperationAsAction
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder.h
    functionUses: 0
    functionsReached:
    - CHECK
    - std::string
    - insert
    linkageType: ''
    returnType: void
    signature: "void MarkOperationAsAction(const ir::Operation& operation,\n                             absl::string_view
      action)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:64,1
    - Dst: std::string
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:64,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:64,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - action
    - rule
    argTypes:
    - absl::string_view
    - InferenceRules::OutputRules
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: raksha::analysis::taint::InferenceRulesBuilder::AddOutputRulesForAction
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder.h
    functionUses: 0
    functionsReached:
    - std::move
    - CHECK
    - std::string
    - insert
    linkageType: ''
    returnType: void
    signature: "void AddOutputRulesForAction(absl::string_view action,\n                               InferenceRules::OutputRules
      rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:71,1
    - Dst: std::string
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:71,1
    - Dst: size
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:71,1
    - Dst: push_back
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tag
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: raksha::analysis::taint::InferenceRulesBuilder::GetOrCreateTagId
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder.h
    functionUses: 0
    functionsReached:
    - size
    - std::string
    - insert
    - push_back
    linkageType: ''
    returnType: TagId
    signature: TagId GetOrCreateTagId(absl::string_view tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:35,1
    - Dst: insert
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:38,1
    - Dst: size
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:38,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: raksha::analysis::taint::InferenceRulesBuilder::InferenceRulesBuilder
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder.h
    functionUses: 0
    functionsReached:
    - size
    - std::move
    - CHECK
    - insert
    linkageType: ''
    returnType: void
    signature: void InferenceRulesBuilder(std::vector<std::string> seed_tag_names
      = {})
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRules
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:47,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:47,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:47,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:48,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: raksha::analysis::taint::InferenceRulesBuilder::Build
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder.h
    functionUses: 0
    functionsReached:
    - InferenceRules
    - std::move
    linkageType: ''
    returnType: InferenceRules
    signature: InferenceRules Build()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:55,1
    - Dst: std::string
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:55,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' operation'
    - action
    argTypes:
    - ir::Operation
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: raksha::analysis::taint::InferenceRulesBuilder::MarkOperationAsAction
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder.h
    functionUses: 0
    functionsReached:
    - CHECK
    - std::string
    - insert
    linkageType: ''
    returnType: void
    signature: "void MarkOperationAsAction(const ir::Operation& operation,\n                             absl::string_view
      action)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:64,1
    - Dst: std::string
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:64,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:64,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - action
    - rule
    argTypes:
    - absl::string_view
    - InferenceRules::OutputRules
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: raksha::analysis::taint::InferenceRulesBuilder::AddOutputRulesForAction
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder.h
    functionUses: 0
    functionsReached:
    - std::move
    - CHECK
    - std::string
    - insert
    linkageType: ''
    returnType: void
    signature: "void AddOutputRulesForAction(absl::string_view action,\n                               InferenceRules::OutputRules
      rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:71,1
    - Dst: std::string
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:71,1
    - Dst: size
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:71,1
    - Dst: push_back
      Src: /src/raksha/src/analysis/taint/inference_rules_builder.h:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tag
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: raksha::analysis::taint::InferenceRulesBuilder::GetOrCreateTagId
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder.h
    functionUses: 0
    functionsReached:
    - size
    - std::string
    - insert
    - push_back
    linkageType: ''
    returnType: TagId
    signature: TagId GetOrCreateTagId(absl::string_view tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::IfcTags::Create
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:24,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:24,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - secrecy_tags
    - integrity_tags
    argTypes:
    - TagIdSet
    - TagIdSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - std::move
    - raksha::analysis::taint::IfcTags::Create
    linkageType: ''
    returnType: void
    signature: void AbstractIfcTags::AbstractIfcTags(TagIdSet secrecy_tags, TagIdSet
      integrity_tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: raksha::analysis::taint::AbstractIfcTags::Bottom
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 6
    functionsReached:
    - raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
    linkageType: ''
    returnType: AbstractIfcTags
    signature: AbstractIfcTags AbstractIfcTags::Bottom()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: raksha::analysis::taint::AbstractIfcTags::IsBottom
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool AbstractIfcTags::IsBottom() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:34,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:34,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:35,1
    - Dst: integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:36,1
    - Dst: tags_::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:36,1
    - Dst: secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:37,1
    - Dst: tags_::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AbstractIfcTags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: raksha::analysis::taint::AbstractIfcTags::IsEquivalentTo
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - raksha::analysis::taint::AbstractIfcTags::IsBottom
    - integrity_tags
    - tags_::secrecy_tags
    - secrecy_tags
    - tags_::integrity_tags
    linkageType: ''
    returnType: bool
    signature: bool AbstractIfcTags::IsEquivalentTo(const AbstractIfcTags& other)
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:41,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:42,1
    - Dst: secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:45,1
    - Dst: absl::c_copy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:46,1
    - Dst: tags_::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:46,1
    - Dst: std::inserter
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:47,1
    - Dst: TagIdSet::end
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:47,1
    - Dst: tags_::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:51,1
    - Dst: integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:52,1
    - Dst: contains
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:53,1
    - Dst: TagIdSet::insert
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:53,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:55,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:55,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AbstractIfcTags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 57
    functionName: raksha::analysis::taint::AbstractIfcTags::Join
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - TagIdSet::end
    - std::inserter
    - raksha::analysis::taint::AbstractIfcTags::IsBottom
    - contains
    - integrity_tags
    - tags_::secrecy_tags
    - absl::c_copy
    - std::move
    - secrecy_tags
    - tags_::integrity_tags
    - TagIdSet::insert
    - raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
    linkageType: ''
    returnType: AbstractIfcTags
    signature: AbstractIfcTags AbstractIfcTags::Join(const AbstractIfcTags& other)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:60,1
    - Dst: integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:62,1
    - Dst: TagIdSet::insert
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:63,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:64,1
    - Dst: secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:64,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tag
    argTypes:
    - TagId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: raksha::analysis::taint::AbstractIfcTags::SetIntegrity
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - raksha::analysis::taint::AbstractIfcTags::IsBottom
    - integrity_tags
    - std::move
    - secrecy_tags
    - TagIdSet::insert
    - raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
    linkageType: ''
    returnType: AbstractIfcTags
    signature: AbstractIfcTags AbstractIfcTags::SetIntegrity(TagId tag) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:68,1
    - Dst: integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:70,1
    - Dst: TagIdSet::erase
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:71,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:72,1
    - Dst: secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:72,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tag
    argTypes:
    - TagId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: raksha::analysis::taint::AbstractIfcTags::ClearIntegrity
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - TagIdSet::erase
    - raksha::analysis::taint::AbstractIfcTags::IsBottom
    - integrity_tags
    - std::move
    - secrecy_tags
    - raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
    linkageType: ''
    returnType: AbstractIfcTags
    signature: AbstractIfcTags AbstractIfcTags::ClearIntegrity(TagId tag) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:76,1
    - Dst: secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:78,1
    - Dst: TagIdSet::insert
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:79,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:80,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:80,1
    - Dst: integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tag
    argTypes:
    - TagId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: raksha::analysis::taint::AbstractIfcTags::SetSecrecy
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - raksha::analysis::taint::AbstractIfcTags::IsBottom
    - integrity_tags
    - std::move
    - secrecy_tags
    - TagIdSet::insert
    - raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
    linkageType: ''
    returnType: AbstractIfcTags
    signature: AbstractIfcTags AbstractIfcTags::SetSecrecy(TagId tag) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:84,1
    - Dst: secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:86,1
    - Dst: TagIdSet::erase
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:87,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:88,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:88,1
    - Dst: integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tag
    argTypes:
    - TagId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: raksha::analysis::taint::AbstractIfcTags::ClearSecrecy
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - TagIdSet::erase
    - raksha::analysis::taint::AbstractIfcTags::IsBottom
    - integrity_tags
    - std::move
    - secrecy_tags
    - raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
    linkageType: ''
    returnType: AbstractIfcTags
    signature: AbstractIfcTags AbstractIfcTags::ClearSecrecy(TagId tag) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:92,1
    - Dst: IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:92,1
    - Dst: secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: '& AbstractIfcTags::secrecy_tags() const'
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - secrecy_tags
    - IsBottom
    - CHECK
    linkageType: ''
    returnType: TagIdSet
    signature: TagIdSet & AbstractIfcTags::secrecy_tags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:97,1
    - Dst: IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:97,1
    - Dst: integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: '& AbstractIfcTags::integrity_tags() const'
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - integrity_tags
    - IsBottom
    - CHECK
    linkageType: ''
    returnType: TagIdSet
    signature: TagIdSet & AbstractIfcTags::integrity_tags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:102,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:102,1
    - Dst: integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tag
    argTypes:
    - TagId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: raksha::analysis::taint::AbstractIfcTags::HasIntegrity
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - integrity_tags
    - CHECK
    - raksha::analysis::taint::AbstractIfcTags::IsBottom
    linkageType: ''
    returnType: bool
    signature: bool AbstractIfcTags::HasIntegrity(TagId tag) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:107,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:107,1
    - Dst: secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: raksha::analysis::taint::AbstractIfcTags::HasNoSecrecy
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - secrecy_tags
    - CHECK
    - raksha::analysis::taint::AbstractIfcTags::IsBottom
    linkageType: ''
    returnType: bool
    signature: bool AbstractIfcTags::HasNoSecrecy() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:113,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:116,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:118,1
    - Dst: size
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:121,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:123,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:124,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:128,1
    - Dst: render_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:128,1
    - Dst: secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:128,1
    - Dst: render_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:129,1
    - Dst: integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' tag_names'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 130
    functionName: raksha::analysis::taint::AbstractIfcTags::ToString
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - absl::StrAppend
    - raksha::analysis::taint::AbstractIfcTags::IsBottom
    - integrity_tags
    - absl::StrJoin
    - secrecy_tags
    - absl::StrCat
    - size
    - render_tags
    linkageType: ''
    returnType: std::string
    signature: "std::string AbstractIfcTags::ToString(\n    const std::vector<std::string>&
      tag_names) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::IfcTags::Create
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:24,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:24,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - secrecy_tags
    - integrity_tags
    argTypes:
    - TagIdSet
    - TagIdSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 6
    functionsReached:
    - std::move
    - raksha::analysis::taint::IfcTags::Create
    linkageType: ''
    returnType: void
    signature: void AbstractIfcTags::AbstractIfcTags(TagIdSet secrecy_tags, TagIdSet
      integrity_tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: raksha::analysis::taint::AbstractIfcTags::Bottom
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 6
    functionsReached:
    - raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
    linkageType: ''
    returnType: AbstractIfcTags
    signature: AbstractIfcTags AbstractIfcTags::Bottom()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: raksha::analysis::taint::AbstractIfcTags::IsBottom
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool AbstractIfcTags::IsBottom() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:34,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:34,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:35,1
    - Dst: integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:36,1
    - Dst: tags_::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:36,1
    - Dst: secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:37,1
    - Dst: tags_::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AbstractIfcTags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: raksha::analysis::taint::AbstractIfcTags::IsEquivalentTo
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - raksha::analysis::taint::AbstractIfcTags::IsBottom
    - integrity_tags
    - tags_::secrecy_tags
    - secrecy_tags
    - tags_::integrity_tags
    linkageType: ''
    returnType: bool
    signature: bool AbstractIfcTags::IsEquivalentTo(const AbstractIfcTags& other)
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:41,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:42,1
    - Dst: secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:45,1
    - Dst: absl::c_copy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:46,1
    - Dst: tags_::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:46,1
    - Dst: std::inserter
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:47,1
    - Dst: TagIdSet::end
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:47,1
    - Dst: tags_::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:51,1
    - Dst: integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:52,1
    - Dst: contains
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:53,1
    - Dst: TagIdSet::insert
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:53,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:55,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:55,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AbstractIfcTags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 57
    functionName: raksha::analysis::taint::AbstractIfcTags::Join
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - TagIdSet::end
    - std::inserter
    - raksha::analysis::taint::AbstractIfcTags::IsBottom
    - contains
    - integrity_tags
    - tags_::secrecy_tags
    - absl::c_copy
    - std::move
    - secrecy_tags
    - tags_::integrity_tags
    - TagIdSet::insert
    - raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
    linkageType: ''
    returnType: AbstractIfcTags
    signature: AbstractIfcTags AbstractIfcTags::Join(const AbstractIfcTags& other)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:60,1
    - Dst: integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:62,1
    - Dst: TagIdSet::insert
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:63,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:64,1
    - Dst: secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:64,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tag
    argTypes:
    - TagId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: raksha::analysis::taint::AbstractIfcTags::SetIntegrity
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - raksha::analysis::taint::AbstractIfcTags::IsBottom
    - integrity_tags
    - std::move
    - secrecy_tags
    - TagIdSet::insert
    - raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
    linkageType: ''
    returnType: AbstractIfcTags
    signature: AbstractIfcTags AbstractIfcTags::SetIntegrity(TagId tag) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:68,1
    - Dst: integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:70,1
    - Dst: TagIdSet::erase
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:71,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:72,1
    - Dst: secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:72,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tag
    argTypes:
    - TagId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: raksha::analysis::taint::AbstractIfcTags::ClearIntegrity
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - TagIdSet::erase
    - raksha::analysis::taint::AbstractIfcTags::IsBottom
    - integrity_tags
    - std::move
    - secrecy_tags
    - raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
    linkageType: ''
    returnType: AbstractIfcTags
    signature: AbstractIfcTags AbstractIfcTags::ClearIntegrity(TagId tag) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:76,1
    - Dst: secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:78,1
    - Dst: TagIdSet::insert
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:79,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:80,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:80,1
    - Dst: integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tag
    argTypes:
    - TagId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: raksha::analysis::taint::AbstractIfcTags::SetSecrecy
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - raksha::analysis::taint::AbstractIfcTags::IsBottom
    - integrity_tags
    - std::move
    - secrecy_tags
    - TagIdSet::insert
    - raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
    linkageType: ''
    returnType: AbstractIfcTags
    signature: AbstractIfcTags AbstractIfcTags::SetSecrecy(TagId tag) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:84,1
    - Dst: secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:86,1
    - Dst: TagIdSet::erase
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:87,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:88,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:88,1
    - Dst: integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tag
    argTypes:
    - TagId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: raksha::analysis::taint::AbstractIfcTags::ClearSecrecy
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - TagIdSet::erase
    - raksha::analysis::taint::AbstractIfcTags::IsBottom
    - integrity_tags
    - std::move
    - secrecy_tags
    - raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
    linkageType: ''
    returnType: AbstractIfcTags
    signature: AbstractIfcTags AbstractIfcTags::ClearSecrecy(TagId tag) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:92,1
    - Dst: IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:92,1
    - Dst: secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: '& AbstractIfcTags::secrecy_tags() const'
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - secrecy_tags
    - IsBottom
    - CHECK
    linkageType: ''
    returnType: TagIdSet
    signature: TagIdSet & AbstractIfcTags::secrecy_tags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:97,1
    - Dst: IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:97,1
    - Dst: integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: '& AbstractIfcTags::integrity_tags() const'
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - integrity_tags
    - IsBottom
    - CHECK
    linkageType: ''
    returnType: TagIdSet
    signature: TagIdSet & AbstractIfcTags::integrity_tags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:102,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:102,1
    - Dst: integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tag
    argTypes:
    - TagId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: raksha::analysis::taint::AbstractIfcTags::HasIntegrity
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - integrity_tags
    - CHECK
    - raksha::analysis::taint::AbstractIfcTags::IsBottom
    linkageType: ''
    returnType: bool
    signature: bool AbstractIfcTags::HasIntegrity(TagId tag) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:107,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:107,1
    - Dst: secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: raksha::analysis::taint::AbstractIfcTags::HasNoSecrecy
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - secrecy_tags
    - CHECK
    - raksha::analysis::taint::AbstractIfcTags::IsBottom
    linkageType: ''
    returnType: bool
    signature: bool AbstractIfcTags::HasNoSecrecy() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::IsBottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:113,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:116,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:118,1
    - Dst: size
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:121,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:123,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:124,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:128,1
    - Dst: render_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:128,1
    - Dst: secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:128,1
    - Dst: render_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:129,1
    - Dst: integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' tag_names'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 130
    functionName: raksha::analysis::taint::AbstractIfcTags::ToString
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
    functionUses: 0
    functionsReached:
    - absl::StrAppend
    - raksha::analysis::taint::AbstractIfcTags::IsBottom
    - integrity_tags
    - absl::StrJoin
    - secrecy_tags
    - absl::StrCat
    - size
    - render_tags
    linkageType: ''
    returnType: std::string
    signature: "std::string AbstractIfcTags::ToString(\n    const std::vector<std::string>&
      tag_names) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/inference_rules.h:47,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/inference_rules.h:48,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/inference_rules.h:49,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/inference_rules.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - action_rules
    - actions
    - tags
    - tag_names
    argTypes:
    - ActionRules
    - absl::flat_hash_map<const ir::Operation*, std::string>
    - absl::flat_hash_map<std::string, TagId>
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: raksha::analysis::taint::InferenceRules::InferenceRules
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void InferenceRules(ActionRules action_rules,\n                 absl::flat_hash_map<const
      ir::Operation*, std::string> actions,\n                 absl::flat_hash_map<std::string,
      TagId> tags,\n                 std::vector<std::string> tag_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: '& action_rules() const'
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ActionRules
    signature: ActionRules & action_rules() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: "& actions()\n      const"
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::flat_hash_map<const ir::Operation*, std::string>
    signature: "absl::flat_hash_map<const ir::Operation*, std::string> & actions()\n
      \     const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: '& tags() const'
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::flat_hash_map<std::string, TagId>
    signature: absl::flat_hash_map<std::string, TagId> & tags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: '& tag_names() const'
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & tag_names() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/analysis/taint/inference_rules.h:63,1
    - Dst: std::string
      Src: /src/raksha/src/analysis/taint/inference_rules.h:63,1
    - Dst: end
      Src: /src/raksha/src/analysis/taint/inference_rules.h:64,1
    - Dst: std::optional<TagId>
      Src: /src/raksha/src/analysis/taint/inference_rules.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: raksha::analysis::taint::InferenceRules::GetTagId
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules.h
    functionUses: 0
    functionsReached:
    - std::optional<TagId>
    - find
    - std::string
    - end
    linkageType: ''
    returnType: std::optional<TagId>
    signature: std::optional<TagId> GetTagId(absl::string_view tag) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/raksha/src/analysis/taint/inference_rules.h:72,1
    - Dst: std::optional<absl::string_view>
      Src: /src/raksha/src/analysis/taint/inference_rules.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - TagId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: raksha::analysis::taint::InferenceRules::GetTagName
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules.h
    functionUses: 0
    functionsReached:
    - std::optional<absl::string_view>
    - size
    linkageType: ''
    returnType: std::optional<absl::string_view>
    signature: std::optional<absl::string_view> GetTagName(TagId tag) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/analysis/taint/inference_rules.h:79,1
    - Dst: end
      Src: /src/raksha/src/analysis/taint/inference_rules.h:80,1
    - Dst: OptionOutputRulesRef
      Src: /src/raksha/src/analysis/taint/inference_rules.h:82,1
    - Dst: std::cref
      Src: /src/raksha/src/analysis/taint/inference_rules.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - action
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: raksha::analysis::taint::InferenceRules::GetOutputRulesForAction
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules.h
    functionUses: 0
    functionsReached:
    - find
    - OptionOutputRulesRef
    - end
    - std::cref
    linkageType: ''
    returnType: OptionOutputRulesRef
    signature: OptionOutputRulesRef GetOutputRulesForAction(absl::string_view action)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/analysis/taint/inference_rules.h:89,1
    - Dst: end
      Src: /src/raksha/src/analysis/taint/inference_rules.h:90,1
    - Dst: raksha::analysis::taint::InferenceRules::GetOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - ir::Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: raksha::analysis::taint::InferenceRules::GetOutputRulesForOperation
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules.h
    functionUses: 0
    functionsReached:
    - find
    - raksha::analysis::taint::InferenceRules::GetOutputRulesForAction
    - end
    linkageType: ''
    returnType: OptionOutputRulesRef
    signature: "OptionOutputRulesRef GetOutputRulesForOperation(\n      const ir::Operation&
      operation) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/inference_rules.h:47,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/inference_rules.h:48,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/inference_rules.h:49,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/inference_rules.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - action_rules
    - actions
    - tags
    - tag_names
    argTypes:
    - ActionRules
    - absl::flat_hash_map<const ir::Operation*, std::string>
    - absl::flat_hash_map<std::string, TagId>
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: raksha::analysis::taint::InferenceRules::InferenceRules
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void InferenceRules(ActionRules action_rules,\n                 absl::flat_hash_map<const
      ir::Operation*, std::string> actions,\n                 absl::flat_hash_map<std::string,
      TagId> tags,\n                 std::vector<std::string> tag_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: '& action_rules() const'
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ActionRules
    signature: ActionRules & action_rules() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: "& actions()\n      const"
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::flat_hash_map<const ir::Operation*, std::string>
    signature: "absl::flat_hash_map<const ir::Operation*, std::string> & actions()\n
      \     const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: '& tags() const'
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::flat_hash_map<std::string, TagId>
    signature: absl::flat_hash_map<std::string, TagId> & tags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: '& tag_names() const'
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & tag_names() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/analysis/taint/inference_rules.h:63,1
    - Dst: std::string
      Src: /src/raksha/src/analysis/taint/inference_rules.h:63,1
    - Dst: end
      Src: /src/raksha/src/analysis/taint/inference_rules.h:64,1
    - Dst: std::optional<TagId>
      Src: /src/raksha/src/analysis/taint/inference_rules.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: raksha::analysis::taint::InferenceRules::GetTagId
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules.h
    functionUses: 0
    functionsReached:
    - std::optional<TagId>
    - find
    - std::string
    - end
    linkageType: ''
    returnType: std::optional<TagId>
    signature: std::optional<TagId> GetTagId(absl::string_view tag) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/raksha/src/analysis/taint/inference_rules.h:72,1
    - Dst: std::optional<absl::string_view>
      Src: /src/raksha/src/analysis/taint/inference_rules.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - TagId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: raksha::analysis::taint::InferenceRules::GetTagName
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules.h
    functionUses: 0
    functionsReached:
    - std::optional<absl::string_view>
    - size
    linkageType: ''
    returnType: std::optional<absl::string_view>
    signature: std::optional<absl::string_view> GetTagName(TagId tag) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/analysis/taint/inference_rules.h:79,1
    - Dst: end
      Src: /src/raksha/src/analysis/taint/inference_rules.h:80,1
    - Dst: OptionOutputRulesRef
      Src: /src/raksha/src/analysis/taint/inference_rules.h:82,1
    - Dst: std::cref
      Src: /src/raksha/src/analysis/taint/inference_rules.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - action
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: raksha::analysis::taint::InferenceRules::GetOutputRulesForAction
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules.h
    functionUses: 1
    functionsReached:
    - find
    - OptionOutputRulesRef
    - end
    - std::cref
    linkageType: ''
    returnType: OptionOutputRulesRef
    signature: OptionOutputRulesRef GetOutputRulesForAction(absl::string_view action)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/analysis/taint/inference_rules.h:89,1
    - Dst: end
      Src: /src/raksha/src/analysis/taint/inference_rules.h:90,1
    - Dst: raksha::analysis::taint::InferenceRules::GetOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - ir::Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: raksha::analysis::taint::InferenceRules::GetOutputRulesForOperation
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules.h
    functionUses: 0
    functionsReached:
    - find
    - raksha::analysis::taint::InferenceRules::GetOutputRulesForAction
    - end
    linkageType: ''
    returnType: OptionOutputRulesRef
    signature: "OptionOutputRulesRef GetOutputRulesForOperation(\n      const ir::Operation&
      operation) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/inference_rule_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/analysis/taint/inference_rule_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/analysis/taint/inference_rule_test.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(EqualityTest, EqualAndNotEqualWorkCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/inference_rule_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/analysis/taint/inference_rule_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/analysis/taint/inference_rule_test.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(EqualityTest, EqualAndNotEqualWorkCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/inference_rule_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/analysis/taint/inference_rule_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/analysis/taint/inference_rule_test.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(EqualityTest, EqualAndNotEqualWorkCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/inference_rule_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/analysis/taint/inference_rule_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/analysis/taint/inference_rule_test.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(EqualityTest, EqualAndNotEqualWorkCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:47,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:48,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:50,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:50,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:50,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:51,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:51,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:51,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_THAT
    - EXPECT_NE
    - InferenceRulesBuilder::GetOrCreateTagId
    - Eq
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, GetOrCreateTagIdReturnsConsistentIds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:57,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:58,1
    - Dst: InferenceRulesBuilder::Build
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:60,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:61,1
    - Dst: InferenceRules::tag_names
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:61,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:61,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:62,1
    - Dst: InferenceRules::tags
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:62,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:62,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:62,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - InferenceRulesBuilder::GetOrCreateTagId
    - std::make_pair
    - InferenceRules::tags
    - InferenceRules::tag_names
    - EXPECT_THAT
    - UnorderedElementsAre
    - InferenceRulesBuilder::Build
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, GetOrCreateTagIdStoresTheNamesAndTheMapping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:70,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:71,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:71,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:71,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:72,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:72,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:72,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:73,1
    - Dst: Not
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:73,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:73,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:74,1
    - Dst: Not
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:74,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_THAT
    - InferenceRulesBuilder::GetOrCreateTagId
    - Eq
    - Not
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, SeedTagsAreCorrectlyInitialized)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:78,1
    - Dst: InferenceRulesBuilder
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - InferenceRulesBuilder
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, DuplicatesInSeedTagsCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:84,1
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:85,1
    - Dst: InferenceRulesBuilder::Build
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:87,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:88,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:89,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:90,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:90,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:91,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:92,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:92,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:92,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:93,1
    - Dst: InferenceRules::tag_names
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:93,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:93,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:94,1
    - Dst: InferenceRules::tags
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:94,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 95
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - IsEmpty
    - std::make_pair
    - InferenceRules::tags
    - InferenceRules::tag_names
    - InferenceRulesBuilder::Build
    - InferenceRules::action_rules
    - EXPECT_THAT
    - UnorderedElementsAre
    - InferenceRulesBuilder::AddOutputRulesForAction
    - InferenceRules::actions
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, AddOutputRulesForActionRemembersTheRules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:100,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:101,1
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - InferenceRulesBuilder::AddOutputRulesForAction
    linkageType: ''
    returnType: void
    signature: "void TEST(InferenceRulesBuilderDeathTest,\n     AddOutputRulesForActionMultipleTimesFails)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:113,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:114,1
    - Dst: InferenceRulesBuilder::Build
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:116,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:117,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:117,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:117,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:118,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:118,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:119,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:119,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:120,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:121,1
    - Dst: InferenceRules::tag_names
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:121,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:121,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:122,1
    - Dst: InferenceRules::tags
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:122,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 123
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - IsEmpty
    - std::make_pair
    - InferenceRules::tags
    - InferenceRulesBuilder::MarkOperationAsAction
    - InferenceRules::tag_names
    - InferenceRules::action_rules
    - EXPECT_THAT
    - UnorderedElementsAre
    - InferenceRulesBuilder::Build
    - InferenceRules::actions
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, MarkOperationAsActionRemembersTheAssociation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:131,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:132,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 134
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - InferenceRulesBuilder::MarkOperationAsAction
    linkageType: ''
    returnType: void
    signature: "void TEST(InferenceRulesBuilderDeathTest,\n     MarkingAnOperationAsActionMultipleTimesFails)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:138,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:139,1
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:140,1
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:141,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:148,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:149,1
    - Dst: InferenceRulesBuilder::Build
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:151,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:152,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:153,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:154,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:154,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:155,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:156,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:156,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:157,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:157,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:158,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:159,1
    - Dst: InferenceRules::tag_names
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:159,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:159,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:160,1
    - Dst: InferenceRules::tags
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:160,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:160,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:160,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 162
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - InferenceRulesBuilder::GetOrCreateTagId
    - std::make_pair
    - InferenceRules::tags
    - InferenceRulesBuilder::MarkOperationAsAction
    - InferenceRules::tag_names
    - InferenceRulesBuilder::Build
    - InferenceRules::action_rules
    - EXPECT_THAT
    - UnorderedElementsAre
    - InferenceRulesBuilder::AddOutputRulesForAction
    - InferenceRules::actions
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, CombiningAllBuildCommandsWork)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:47,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:48,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:50,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:50,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:50,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:51,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:51,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:51,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_THAT
    - EXPECT_NE
    - InferenceRulesBuilder::GetOrCreateTagId
    - Eq
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, GetOrCreateTagIdReturnsConsistentIds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:57,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:58,1
    - Dst: InferenceRulesBuilder::Build
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:60,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:61,1
    - Dst: InferenceRules::tag_names
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:61,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:61,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:62,1
    - Dst: InferenceRules::tags
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:62,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:62,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:62,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - InferenceRulesBuilder::GetOrCreateTagId
    - std::make_pair
    - InferenceRules::tags
    - InferenceRules::tag_names
    - EXPECT_THAT
    - UnorderedElementsAre
    - InferenceRulesBuilder::Build
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, GetOrCreateTagIdStoresTheNamesAndTheMapping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:70,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:71,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:71,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:71,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:72,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:72,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:72,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:73,1
    - Dst: Not
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:73,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:73,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:74,1
    - Dst: Not
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:74,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_THAT
    - InferenceRulesBuilder::GetOrCreateTagId
    - Eq
    - Not
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, SeedTagsAreCorrectlyInitialized)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:78,1
    - Dst: InferenceRulesBuilder
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - InferenceRulesBuilder
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, DuplicatesInSeedTagsCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:84,1
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:85,1
    - Dst: InferenceRulesBuilder::Build
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:87,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:88,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:89,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:90,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:90,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:91,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:92,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:92,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:92,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:93,1
    - Dst: InferenceRules::tag_names
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:93,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:93,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:94,1
    - Dst: InferenceRules::tags
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:94,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 95
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - IsEmpty
    - std::make_pair
    - InferenceRules::tags
    - InferenceRules::tag_names
    - InferenceRulesBuilder::Build
    - InferenceRules::action_rules
    - EXPECT_THAT
    - UnorderedElementsAre
    - InferenceRulesBuilder::AddOutputRulesForAction
    - InferenceRules::actions
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, AddOutputRulesForActionRemembersTheRules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:100,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:101,1
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - InferenceRulesBuilder::AddOutputRulesForAction
    linkageType: ''
    returnType: void
    signature: "void TEST(InferenceRulesBuilderDeathTest,\n     AddOutputRulesForActionMultipleTimesFails)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:113,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:114,1
    - Dst: InferenceRulesBuilder::Build
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:116,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:117,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:117,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:117,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:118,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:118,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:119,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:119,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:120,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:121,1
    - Dst: InferenceRules::tag_names
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:121,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:121,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:122,1
    - Dst: InferenceRules::tags
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:122,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 123
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - IsEmpty
    - std::make_pair
    - InferenceRules::tags
    - InferenceRulesBuilder::MarkOperationAsAction
    - InferenceRules::tag_names
    - InferenceRules::action_rules
    - EXPECT_THAT
    - UnorderedElementsAre
    - InferenceRulesBuilder::Build
    - InferenceRules::actions
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, MarkOperationAsActionRemembersTheAssociation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:131,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:132,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 134
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - InferenceRulesBuilder::MarkOperationAsAction
    linkageType: ''
    returnType: void
    signature: "void TEST(InferenceRulesBuilderDeathTest,\n     MarkingAnOperationAsActionMultipleTimesFails)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:138,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:139,1
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:140,1
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:141,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:148,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:149,1
    - Dst: InferenceRulesBuilder::Build
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:151,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:152,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:153,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:154,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:154,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:155,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:156,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:156,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:157,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:157,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:158,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:159,1
    - Dst: InferenceRules::tag_names
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:159,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:159,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:160,1
    - Dst: InferenceRules::tags
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:160,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:160,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:160,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 162
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - InferenceRulesBuilder::GetOrCreateTagId
    - std::make_pair
    - InferenceRules::tags
    - InferenceRulesBuilder::MarkOperationAsAction
    - InferenceRules::tag_names
    - InferenceRulesBuilder::Build
    - InferenceRules::action_rules
    - EXPECT_THAT
    - UnorderedElementsAre
    - InferenceRulesBuilder::AddOutputRulesForAction
    - InferenceRules::actions
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, CombiningAllBuildCommandsWork)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:47,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:48,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:50,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:50,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:50,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:51,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:51,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:51,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_THAT
    - EXPECT_NE
    - InferenceRulesBuilder::GetOrCreateTagId
    - Eq
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, GetOrCreateTagIdReturnsConsistentIds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:57,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:58,1
    - Dst: InferenceRulesBuilder::Build
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:60,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:61,1
    - Dst: InferenceRules::tag_names
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:61,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:61,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:62,1
    - Dst: InferenceRules::tags
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:62,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:62,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:62,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - InferenceRulesBuilder::GetOrCreateTagId
    - std::make_pair
    - InferenceRules::tags
    - InferenceRules::tag_names
    - EXPECT_THAT
    - UnorderedElementsAre
    - InferenceRulesBuilder::Build
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, GetOrCreateTagIdStoresTheNamesAndTheMapping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:70,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:71,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:71,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:71,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:72,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:72,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:72,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:73,1
    - Dst: Not
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:73,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:73,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:74,1
    - Dst: Not
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:74,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_THAT
    - InferenceRulesBuilder::GetOrCreateTagId
    - Eq
    - Not
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, SeedTagsAreCorrectlyInitialized)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:78,1
    - Dst: InferenceRulesBuilder
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - InferenceRulesBuilder
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, DuplicatesInSeedTagsCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:84,1
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:85,1
    - Dst: InferenceRulesBuilder::Build
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:87,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:88,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:89,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:90,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:90,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:91,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:92,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:92,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:92,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:93,1
    - Dst: InferenceRules::tag_names
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:93,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:93,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:94,1
    - Dst: InferenceRules::tags
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:94,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 95
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - IsEmpty
    - std::make_pair
    - InferenceRules::tags
    - InferenceRules::tag_names
    - InferenceRulesBuilder::Build
    - InferenceRules::action_rules
    - EXPECT_THAT
    - UnorderedElementsAre
    - InferenceRulesBuilder::AddOutputRulesForAction
    - InferenceRules::actions
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, AddOutputRulesForActionRemembersTheRules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:100,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:101,1
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - InferenceRulesBuilder::AddOutputRulesForAction
    linkageType: ''
    returnType: void
    signature: "void TEST(InferenceRulesBuilderDeathTest,\n     AddOutputRulesForActionMultipleTimesFails)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:113,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:114,1
    - Dst: InferenceRulesBuilder::Build
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:116,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:117,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:117,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:117,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:118,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:118,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:119,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:119,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:120,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:121,1
    - Dst: InferenceRules::tag_names
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:121,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:121,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:122,1
    - Dst: InferenceRules::tags
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:122,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 123
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - IsEmpty
    - std::make_pair
    - InferenceRules::tags
    - InferenceRulesBuilder::MarkOperationAsAction
    - InferenceRules::tag_names
    - InferenceRules::action_rules
    - EXPECT_THAT
    - UnorderedElementsAre
    - InferenceRulesBuilder::Build
    - InferenceRules::actions
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, MarkOperationAsActionRemembersTheAssociation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:131,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:132,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 134
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - InferenceRulesBuilder::MarkOperationAsAction
    linkageType: ''
    returnType: void
    signature: "void TEST(InferenceRulesBuilderDeathTest,\n     MarkingAnOperationAsActionMultipleTimesFails)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:138,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:139,1
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:140,1
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:141,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:148,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:149,1
    - Dst: InferenceRulesBuilder::Build
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:151,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:152,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:153,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:154,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:154,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:155,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:156,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:156,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:157,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:157,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:158,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:159,1
    - Dst: InferenceRules::tag_names
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:159,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:159,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:160,1
    - Dst: InferenceRules::tags
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:160,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:160,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:160,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 162
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - InferenceRulesBuilder::GetOrCreateTagId
    - std::make_pair
    - InferenceRules::tags
    - InferenceRulesBuilder::MarkOperationAsAction
    - InferenceRules::tag_names
    - InferenceRulesBuilder::Build
    - InferenceRules::action_rules
    - EXPECT_THAT
    - UnorderedElementsAre
    - InferenceRulesBuilder::AddOutputRulesForAction
    - InferenceRules::actions
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, CombiningAllBuildCommandsWork)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:47,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:48,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:50,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:50,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:50,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:51,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:51,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:51,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_THAT
    - EXPECT_NE
    - InferenceRulesBuilder::GetOrCreateTagId
    - Eq
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, GetOrCreateTagIdReturnsConsistentIds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:57,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:58,1
    - Dst: InferenceRulesBuilder::Build
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:60,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:61,1
    - Dst: InferenceRules::tag_names
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:61,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:61,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:62,1
    - Dst: InferenceRules::tags
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:62,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:62,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:62,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - InferenceRulesBuilder::GetOrCreateTagId
    - std::make_pair
    - InferenceRules::tags
    - InferenceRules::tag_names
    - EXPECT_THAT
    - UnorderedElementsAre
    - InferenceRulesBuilder::Build
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, GetOrCreateTagIdStoresTheNamesAndTheMapping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:70,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:71,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:71,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:71,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:72,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:72,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:72,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:73,1
    - Dst: Not
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:73,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:73,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:74,1
    - Dst: Not
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:74,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_THAT
    - InferenceRulesBuilder::GetOrCreateTagId
    - Eq
    - Not
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, SeedTagsAreCorrectlyInitialized)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:78,1
    - Dst: InferenceRulesBuilder
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - InferenceRulesBuilder
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, DuplicatesInSeedTagsCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:84,1
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:85,1
    - Dst: InferenceRulesBuilder::Build
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:87,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:88,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:89,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:90,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:90,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:91,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:92,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:92,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:92,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:93,1
    - Dst: InferenceRules::tag_names
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:93,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:93,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:94,1
    - Dst: InferenceRules::tags
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:94,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 95
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - IsEmpty
    - std::make_pair
    - InferenceRules::tags
    - InferenceRules::tag_names
    - InferenceRulesBuilder::Build
    - InferenceRules::action_rules
    - EXPECT_THAT
    - UnorderedElementsAre
    - InferenceRulesBuilder::AddOutputRulesForAction
    - InferenceRules::actions
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, AddOutputRulesForActionRemembersTheRules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:100,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:101,1
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - InferenceRulesBuilder::AddOutputRulesForAction
    linkageType: ''
    returnType: void
    signature: "void TEST(InferenceRulesBuilderDeathTest,\n     AddOutputRulesForActionMultipleTimesFails)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:113,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:114,1
    - Dst: InferenceRulesBuilder::Build
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:116,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:117,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:117,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:117,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:118,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:118,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:119,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:119,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:120,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:121,1
    - Dst: InferenceRules::tag_names
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:121,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:121,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:122,1
    - Dst: InferenceRules::tags
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:122,1
    - Dst: IsEmpty
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 123
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - IsEmpty
    - std::make_pair
    - InferenceRules::tags
    - InferenceRulesBuilder::MarkOperationAsAction
    - InferenceRules::tag_names
    - InferenceRules::action_rules
    - EXPECT_THAT
    - UnorderedElementsAre
    - InferenceRulesBuilder::Build
    - InferenceRules::actions
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, MarkOperationAsActionRemembersTheAssociation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:131,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:132,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 134
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - InferenceRulesBuilder::MarkOperationAsAction
    linkageType: ''
    returnType: void
    signature: "void TEST(InferenceRulesBuilderDeathTest,\n     MarkingAnOperationAsActionMultipleTimesFails)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:138,1
    - Dst: InferenceRulesBuilder::GetOrCreateTagId
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:139,1
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:140,1
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:141,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:148,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:149,1
    - Dst: InferenceRulesBuilder::Build
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:151,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:152,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:153,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:154,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:154,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:155,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:156,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:156,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:157,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:157,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:158,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:159,1
    - Dst: InferenceRules::tag_names
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:159,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:159,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:160,1
    - Dst: InferenceRules::tags
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:160,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:160,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:160,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 162
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
    functionUses: 0
    functionsReached:
    - InferenceRulesBuilder::GetOrCreateTagId
    - std::make_pair
    - InferenceRules::tags
    - InferenceRulesBuilder::MarkOperationAsAction
    - InferenceRules::tag_names
    - InferenceRulesBuilder::Build
    - InferenceRules::action_rules
    - EXPECT_THAT
    - UnorderedElementsAre
    - InferenceRulesBuilder::AddOutputRulesForAction
    - InferenceRules::actions
    linkageType: ''
    returnType: void
    signature: void TEST(InferenceRulesBuilderTest, CombiningAllBuildCommandsWork)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - InputHasIntegrity
    - InputHasIntegrity
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: "operator==(const InputHasIntegrity& lhs,\n                       const
      InputHasIntegrity& rhs)"
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator==(const InputHasIntegrity& lhs,\n                       const
      InputHasIntegrity& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - InputHasIntegrity
    - InputHasIntegrity
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: "operator!=(const InputHasIntegrity& lhs,\n                       const
      InputHasIntegrity& rhs)"
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=(const InputHasIntegrity& lhs,\n                       const
      InputHasIntegrity& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - CopyInput
    - CopyInput
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: operator==(const CopyInput& lhs, const CopyInput& rhs)
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const CopyInput& lhs, const CopyInput& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - CopyInput
    - CopyInput
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: operator!=(const CopyInput& lhs, const CopyInput& rhs)
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const CopyInput& lhs, const CopyInput& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MergeIntegrityTags
    - MergeIntegrityTags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: "operator==(const MergeIntegrityTags& lhs,\n                       const
      MergeIntegrityTags& rhs)"
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator==(const MergeIntegrityTags& lhs,\n                       const
      MergeIntegrityTags& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MergeIntegrityTags
    - MergeIntegrityTags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: "operator!=(const MergeIntegrityTags& lhs,\n                       const
      MergeIntegrityTags& rhs)"
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=(const MergeIntegrityTags& lhs,\n                       const
      MergeIntegrityTags& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - ModifyTag
    - ModifyTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: operator==(const ModifyTag& lhs, const ModifyTag& rhs)
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const ModifyTag& lhs, const ModifyTag& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - ModifyTag
    - ModifyTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: operator!=(const ModifyTag& lhs, const ModifyTag& rhs)
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const ModifyTag& lhs, const ModifyTag& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - InferenceRule
    - InferenceRule
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: operator==(const InferenceRule& lhs, const InferenceRule& rhs)
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const InferenceRule& lhs, const InferenceRule& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - InferenceRule
    - InferenceRule
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: operator!=(const InferenceRule& lhs, const InferenceRule& rhs)
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const InferenceRule& lhs, const InferenceRule& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - InputHasIntegrity
    - InputHasIntegrity
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: "operator==(const InputHasIntegrity& lhs,\n                       const
      InputHasIntegrity& rhs)"
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator==(const InputHasIntegrity& lhs,\n                       const
      InputHasIntegrity& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - InputHasIntegrity
    - InputHasIntegrity
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: "operator!=(const InputHasIntegrity& lhs,\n                       const
      InputHasIntegrity& rhs)"
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=(const InputHasIntegrity& lhs,\n                       const
      InputHasIntegrity& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - CopyInput
    - CopyInput
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: operator==(const CopyInput& lhs, const CopyInput& rhs)
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const CopyInput& lhs, const CopyInput& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - CopyInput
    - CopyInput
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: operator!=(const CopyInput& lhs, const CopyInput& rhs)
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const CopyInput& lhs, const CopyInput& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MergeIntegrityTags
    - MergeIntegrityTags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: "operator==(const MergeIntegrityTags& lhs,\n                       const
      MergeIntegrityTags& rhs)"
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator==(const MergeIntegrityTags& lhs,\n                       const
      MergeIntegrityTags& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - MergeIntegrityTags
    - MergeIntegrityTags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: "operator!=(const MergeIntegrityTags& lhs,\n                       const
      MergeIntegrityTags& rhs)"
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=(const MergeIntegrityTags& lhs,\n                       const
      MergeIntegrityTags& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - ModifyTag
    - ModifyTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: operator==(const ModifyTag& lhs, const ModifyTag& rhs)
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const ModifyTag& lhs, const ModifyTag& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - ModifyTag
    - ModifyTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: operator!=(const ModifyTag& lhs, const ModifyTag& rhs)
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const ModifyTag& lhs, const ModifyTag& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - InferenceRule
    - InferenceRule
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: operator==(const InferenceRule& lhs, const InferenceRule& rhs)
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const InferenceRule& lhs, const InferenceRule& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - InferenceRule
    - InferenceRule
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: operator!=(const InferenceRule& lhs, const InferenceRule& rhs)
    functionSourceFile: /src/raksha/src/analysis/taint/inference_rule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const InferenceRule& lhs, const InferenceRule& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_semantics.h:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - inference_rules
    argTypes:
    - InferenceRules
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: raksha::analysis::taint::AbstractSemantics::AbstractSemantics
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void AbstractSemantics(InferenceRules inference_rules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_semantics.h:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - inference_rules
    argTypes:
    - InferenceRules
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: raksha::analysis::taint::AbstractSemantics::AbstractSemantics
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void AbstractSemantics(InferenceRules inference_rules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_intrusive_ptr<IfcTags>
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.h:36,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.h:36,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - secrecy_tags
    - integrity_tags
    argTypes:
    - TagIdSet
    - TagIdSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: raksha::analysis::taint::IfcTags::Create
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.h
    functionUses: 2
    functionsReached:
    - std::move
    - make_intrusive_ptr<IfcTags>
    linkageType: ''
    returnType: IfcTagsPtr
    signature: IfcTagsPtr Create(TagIdSet secrecy_tags, TagIdSet integrity_tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: raksha::analysis::taint::IfcTags::IfcTags
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IfcTags()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: '& secrecy_tags() const'
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TagIdSet
    signature: TagIdSet & secrecy_tags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: '& integrity_tags() const'
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TagIdSet
    signature: TagIdSet & integrity_tags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.h:47,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - secrecy_tags
    - integrity_tags
    argTypes:
    - TagIdSet
    - TagIdSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: raksha::analysis::taint::IfcTags::IfcTags
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void IfcTags(TagIdSet secrecy_tags, TagIdSet integrity_tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - tags
    argTypes:
    - IfcTagsConstPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.h
    functionUses: 12
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void AbstractIfcTags(IfcTagsConstPtr tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_intrusive_ptr<IfcTags>
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.h:36,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.h:36,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - secrecy_tags
    - integrity_tags
    argTypes:
    - TagIdSet
    - TagIdSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: raksha::analysis::taint::IfcTags::Create
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.h
    functionUses: 2
    functionsReached:
    - std::move
    - make_intrusive_ptr<IfcTags>
    linkageType: ''
    returnType: IfcTagsPtr
    signature: IfcTagsPtr Create(TagIdSet secrecy_tags, TagIdSet integrity_tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: raksha::analysis::taint::IfcTags::IfcTags
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IfcTags()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: '& secrecy_tags() const'
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TagIdSet
    signature: TagIdSet & secrecy_tags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: '& integrity_tags() const'
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TagIdSet
    signature: TagIdSet & integrity_tags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.h:47,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - secrecy_tags
    - integrity_tags
    argTypes:
    - TagIdSet
    - TagIdSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: raksha::analysis::taint::IfcTags::IfcTags
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void IfcTags(TagIdSet secrecy_tags, TagIdSet integrity_tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - tags
    argTypes:
    - IfcTagsConstPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags.h
    functionUses: 12
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void AbstractIfcTags(IfcTagsConstPtr tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:61,1
    - Dst: raksha::ir::IRContext::GetOperator
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:61,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: raksha::analysis::taint::AbstractSemanticsTest::AbstractSemanticsTest
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrCat
    - raksha::ir::IRContext::GetOperator
    - push_back
    linkageType: ''
    returnType: void
    signature: void AbstractSemanticsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AbstractSemantics::ApplyOperationTransformer
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rules
    - ' operation'
    - ' inputs'
    argTypes:
    - InferenceRules
    - ir::Operation
    - std::vector<AbstractIfcTags>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: raksha::analysis::taint::AbstractSemanticsTest::InvokeOperationTransformer
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - AbstractSemantics::ApplyOperationTransformer
    linkageType: ''
    returnType: std::vector<AbstractIfcTags>
    signature: "std::vector<AbstractIfcTags> InvokeOperationTransformer(\n      InferenceRules
      rules, const ir::Operation& operation,\n      const std::vector<AbstractIfcTags>&
      inputs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:78,1
    - Dst: raksha::analysis::taint::InferenceRules::GetOutputRulesForOperation
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - num_inputs
    - num_outputs
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: raksha::analysis::taint::AbstractSemanticsTest::BuildOperation
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - raksha::analysis::taint::InferenceRules::GetOutputRulesForOperation
    - CHECK
    linkageType: ''
    returnType: ir::Operation
    signature: ir::Operation BuildOperation(uint64_t num_inputs, uint64_t num_outputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ir::types::TypeFactory::MakePrimitiveType
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:89,1
    - Dst: InferenceRules
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:93,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:96,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:96,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:96,1
    - Dst: raksha::ir::value::StoredValue::StoredValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:96,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:97,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:97,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:98,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:98,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:99,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:99,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:100,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:100,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:101,1
    - Dst: AbstractSemantics::GetInitialState
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:101,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
    - AbstractSemantics::GetInitialState
    - raksha::ir::value::StoredValue::StoredValue
    - EXPECT_TRUE
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - raksha::backends::policy_engine::MakeOperationResultValue
    - AbstractIfcTags
    - InferenceRules
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - ir::types::TypeFactory::MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractSemanticsTest, GetInitialStateReturnsEmptySets)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:141,1
    - Dst: BuildOperation
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:145,1
    - Dst: std::vector::size
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:145,1
    - Dst: InvokeOperationTransformer
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:147,1
    - Dst: InferenceRules
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:147,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:149,1
    - Dst: SizeIs
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:149,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:150,1
    - Dst: Each
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:150,1
    - Dst: IsEquivalentTo
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 151
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - SizeIs
    - Each
    - InferenceRules
    - EXPECT_THAT
    - InvokeOperationTransformer
    - BuildOperation
    - IsEquivalentTo
    - GetParam
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TEST_P(DefaultBehaviorTest, NoInferenceRuleResultsInDefaultBehavior)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:164,1
    - Dst: GetInputExample
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:167,1
    - Dst: BuildOperation
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:168,1
    - Dst: size
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:168,1
    - Dst: utils::MapIter<InferenceRule>
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:172,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:176,1
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:177,1
    - Dst: raksha::analysis::taint::AbstractSemanticsTest::InvokeOperationTransformer
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:181,1
    - Dst: InferenceRulesBuilder::Build
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - num_outputs
    - output_index
    - ' test_case'
    - ' premises'
    argTypes:
    - uint64_t
    - uint64_t
    - AbstractSemanticsTestCase
    - std::vector<InputHasIntegrity>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 183
    functionName: raksha::analysis::taint::InferenceRuleInterpretationTest::InvokeOperationTransformer
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - GetInputExample
    - raksha::analysis::taint::AbstractSemanticsTest::InvokeOperationTransformer
    - InferenceRulesBuilder::AddOutputRulesForAction
    - InferenceRulesBuilder::MarkOperationAsAction
    - InferenceRulesBuilder::Build
    - utils::MapIter<InferenceRule>
    - CHECK
    - BuildOperation
    - size
    linkageType: ''
    returnType: std::vector<AbstractIfcTags>
    signature: "std::vector<AbstractIfcTags> InvokeOperationTransformer(\n      uint64_t
      num_outputs, uint64_t output_index,\n      const AbstractSemanticsTestCase&
      test_case,\n      const std::vector<InputHasIntegrity>& premises)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:187,1
    - Dst: raksha::analysis::taint::GetInputExample
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:189,1
    - Dst: InvokeOperationTransformer
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:201,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:204,1
    - Dst: SizeIs
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:204,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:205,1
    - Dst: Pointwise
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:205,1
    - Dst: ElementIsEquivalentTo
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 207
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - SizeIs
    - ElementIsEquivalentTo
    - EXPECT_THAT
    - Pointwise
    - InvokeOperationTransformer
    - raksha::analysis::taint::GetInputExample
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(InferenceRuleInterpretationTest, OutputRulesAreApplied)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:315,1
    - Dst: contains
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:315,1
    - Dst: at
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 318
    functionName: raksha::analysis::taint::GetInputExample
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 1
    functionsReached:
    - contains
    - at
    - CHECK
    linkageType: ''
    returnType: InputExample
    signature: InputExample & GetInputExample(absl::string_view key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:61,1
    - Dst: raksha::ir::IRContext::GetOperator
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:61,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: raksha::analysis::taint::AbstractSemanticsTest::AbstractSemanticsTest
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrCat
    - raksha::ir::IRContext::GetOperator
    - push_back
    linkageType: ''
    returnType: void
    signature: void AbstractSemanticsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AbstractSemantics::ApplyOperationTransformer
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rules
    - ' operation'
    - ' inputs'
    argTypes:
    - InferenceRules
    - ir::Operation
    - std::vector<AbstractIfcTags>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: raksha::analysis::taint::AbstractSemanticsTest::InvokeOperationTransformer
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 1
    functionsReached:
    - AbstractSemantics::ApplyOperationTransformer
    linkageType: ''
    returnType: std::vector<AbstractIfcTags>
    signature: "std::vector<AbstractIfcTags> InvokeOperationTransformer(\n      InferenceRules
      rules, const ir::Operation& operation,\n      const std::vector<AbstractIfcTags>&
      inputs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:78,1
    - Dst: raksha::analysis::taint::InferenceRules::GetOutputRulesForOperation
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - num_inputs
    - num_outputs
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: raksha::analysis::taint::AbstractSemanticsTest::BuildOperation
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - raksha::analysis::taint::InferenceRules::GetOutputRulesForOperation
    - CHECK
    linkageType: ''
    returnType: ir::Operation
    signature: ir::Operation BuildOperation(uint64_t num_inputs, uint64_t num_outputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ir::types::TypeFactory::MakePrimitiveType
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:89,1
    - Dst: InferenceRules
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:93,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:96,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:96,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:96,1
    - Dst: raksha::ir::value::StoredValue::StoredValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:96,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:97,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:97,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:98,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:98,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:99,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:99,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:100,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:100,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:101,1
    - Dst: AbstractSemantics::GetInitialState
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:101,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
    - AbstractSemantics::GetInitialState
    - raksha::ir::value::StoredValue::StoredValue
    - EXPECT_TRUE
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - raksha::backends::policy_engine::MakeOperationResultValue
    - AbstractIfcTags
    - InferenceRules
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - ir::types::TypeFactory::MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractSemanticsTest, GetInitialStateReturnsEmptySets)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:141,1
    - Dst: BuildOperation
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:145,1
    - Dst: std::vector::size
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:145,1
    - Dst: InvokeOperationTransformer
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:147,1
    - Dst: InferenceRules
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:147,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:149,1
    - Dst: SizeIs
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:149,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:150,1
    - Dst: Each
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:150,1
    - Dst: IsEquivalentTo
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 151
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - SizeIs
    - Each
    - InferenceRules
    - EXPECT_THAT
    - InvokeOperationTransformer
    - BuildOperation
    - IsEquivalentTo
    - GetParam
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TEST_P(DefaultBehaviorTest, NoInferenceRuleResultsInDefaultBehavior)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:164,1
    - Dst: GetInputExample
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:167,1
    - Dst: BuildOperation
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:168,1
    - Dst: size
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:168,1
    - Dst: utils::MapIter<InferenceRule>
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:172,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:176,1
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:177,1
    - Dst: raksha::analysis::taint::AbstractSemanticsTest::InvokeOperationTransformer
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:181,1
    - Dst: InferenceRulesBuilder::Build
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - num_outputs
    - output_index
    - ' test_case'
    - ' premises'
    argTypes:
    - uint64_t
    - uint64_t
    - AbstractSemanticsTestCase
    - std::vector<InputHasIntegrity>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 183
    functionName: raksha::analysis::taint::InferenceRuleInterpretationTest::InvokeOperationTransformer
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - GetInputExample
    - raksha::analysis::taint::AbstractSemanticsTest::InvokeOperationTransformer
    - InferenceRulesBuilder::AddOutputRulesForAction
    - InferenceRulesBuilder::MarkOperationAsAction
    - InferenceRulesBuilder::Build
    - utils::MapIter<InferenceRule>
    - CHECK
    - BuildOperation
    - size
    linkageType: ''
    returnType: std::vector<AbstractIfcTags>
    signature: "std::vector<AbstractIfcTags> InvokeOperationTransformer(\n      uint64_t
      num_outputs, uint64_t output_index,\n      const AbstractSemanticsTestCase&
      test_case,\n      const std::vector<InputHasIntegrity>& premises)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:187,1
    - Dst: raksha::analysis::taint::GetInputExample
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:189,1
    - Dst: InvokeOperationTransformer
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:201,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:204,1
    - Dst: SizeIs
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:204,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:205,1
    - Dst: Pointwise
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:205,1
    - Dst: ElementIsEquivalentTo
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 207
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - SizeIs
    - ElementIsEquivalentTo
    - EXPECT_THAT
    - Pointwise
    - InvokeOperationTransformer
    - raksha::analysis::taint::GetInputExample
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(InferenceRuleInterpretationTest, OutputRulesAreApplied)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:315,1
    - Dst: contains
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:315,1
    - Dst: at
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 318
    functionName: raksha::analysis::taint::GetInputExample
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 2
    functionsReached:
    - contains
    - at
    - CHECK
    linkageType: ''
    returnType: InputExample
    signature: InputExample & GetInputExample(absl::string_view key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:61,1
    - Dst: raksha::ir::IRContext::GetOperator
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:61,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: raksha::analysis::taint::AbstractSemanticsTest::AbstractSemanticsTest
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrCat
    - raksha::ir::IRContext::GetOperator
    - push_back
    linkageType: ''
    returnType: void
    signature: void AbstractSemanticsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AbstractSemantics::ApplyOperationTransformer
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rules
    - ' operation'
    - ' inputs'
    argTypes:
    - InferenceRules
    - ir::Operation
    - std::vector<AbstractIfcTags>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: raksha::analysis::taint::AbstractSemanticsTest::InvokeOperationTransformer
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 2
    functionsReached:
    - AbstractSemantics::ApplyOperationTransformer
    linkageType: ''
    returnType: std::vector<AbstractIfcTags>
    signature: "std::vector<AbstractIfcTags> InvokeOperationTransformer(\n      InferenceRules
      rules, const ir::Operation& operation,\n      const std::vector<AbstractIfcTags>&
      inputs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:78,1
    - Dst: raksha::analysis::taint::InferenceRules::GetOutputRulesForOperation
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - num_inputs
    - num_outputs
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: raksha::analysis::taint::AbstractSemanticsTest::BuildOperation
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - raksha::analysis::taint::InferenceRules::GetOutputRulesForOperation
    - CHECK
    linkageType: ''
    returnType: ir::Operation
    signature: ir::Operation BuildOperation(uint64_t num_inputs, uint64_t num_outputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ir::types::TypeFactory::MakePrimitiveType
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:89,1
    - Dst: InferenceRules
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:93,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:96,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:96,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:96,1
    - Dst: raksha::ir::value::StoredValue::StoredValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:96,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:97,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:97,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:98,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:98,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:99,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:99,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:100,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:100,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:101,1
    - Dst: AbstractSemantics::GetInitialState
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:101,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
    - AbstractSemantics::GetInitialState
    - raksha::ir::value::StoredValue::StoredValue
    - EXPECT_TRUE
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - raksha::backends::policy_engine::MakeOperationResultValue
    - AbstractIfcTags
    - InferenceRules
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - ir::types::TypeFactory::MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractSemanticsTest, GetInitialStateReturnsEmptySets)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:141,1
    - Dst: BuildOperation
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:145,1
    - Dst: std::vector::size
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:145,1
    - Dst: InvokeOperationTransformer
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:147,1
    - Dst: InferenceRules
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:147,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:149,1
    - Dst: SizeIs
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:149,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:150,1
    - Dst: Each
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:150,1
    - Dst: IsEquivalentTo
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 151
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - SizeIs
    - Each
    - InferenceRules
    - EXPECT_THAT
    - InvokeOperationTransformer
    - BuildOperation
    - IsEquivalentTo
    - GetParam
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TEST_P(DefaultBehaviorTest, NoInferenceRuleResultsInDefaultBehavior)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:164,1
    - Dst: GetInputExample
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:167,1
    - Dst: BuildOperation
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:168,1
    - Dst: size
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:168,1
    - Dst: utils::MapIter<InferenceRule>
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:172,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:176,1
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:177,1
    - Dst: raksha::analysis::taint::AbstractSemanticsTest::InvokeOperationTransformer
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:181,1
    - Dst: InferenceRulesBuilder::Build
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - num_outputs
    - output_index
    - ' test_case'
    - ' premises'
    argTypes:
    - uint64_t
    - uint64_t
    - AbstractSemanticsTestCase
    - std::vector<InputHasIntegrity>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 183
    functionName: raksha::analysis::taint::InferenceRuleInterpretationTest::InvokeOperationTransformer
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - GetInputExample
    - raksha::analysis::taint::AbstractSemanticsTest::InvokeOperationTransformer
    - InferenceRulesBuilder::AddOutputRulesForAction
    - InferenceRulesBuilder::MarkOperationAsAction
    - InferenceRulesBuilder::Build
    - utils::MapIter<InferenceRule>
    - CHECK
    - BuildOperation
    - size
    linkageType: ''
    returnType: std::vector<AbstractIfcTags>
    signature: "std::vector<AbstractIfcTags> InvokeOperationTransformer(\n      uint64_t
      num_outputs, uint64_t output_index,\n      const AbstractSemanticsTestCase&
      test_case,\n      const std::vector<InputHasIntegrity>& premises)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:187,1
    - Dst: raksha::analysis::taint::GetInputExample
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:189,1
    - Dst: InvokeOperationTransformer
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:201,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:204,1
    - Dst: SizeIs
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:204,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:205,1
    - Dst: Pointwise
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:205,1
    - Dst: ElementIsEquivalentTo
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 207
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - SizeIs
    - ElementIsEquivalentTo
    - EXPECT_THAT
    - Pointwise
    - InvokeOperationTransformer
    - raksha::analysis::taint::GetInputExample
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(InferenceRuleInterpretationTest, OutputRulesAreApplied)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:315,1
    - Dst: contains
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:315,1
    - Dst: at
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 318
    functionName: raksha::analysis::taint::GetInputExample
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 3
    functionsReached:
    - contains
    - at
    - CHECK
    linkageType: ''
    returnType: InputExample
    signature: InputExample & GetInputExample(absl::string_view key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:61,1
    - Dst: raksha::ir::IRContext::GetOperator
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:61,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: raksha::analysis::taint::AbstractSemanticsTest::AbstractSemanticsTest
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrCat
    - raksha::ir::IRContext::GetOperator
    - push_back
    linkageType: ''
    returnType: void
    signature: void AbstractSemanticsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AbstractSemantics::ApplyOperationTransformer
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rules
    - ' operation'
    - ' inputs'
    argTypes:
    - InferenceRules
    - ir::Operation
    - std::vector<AbstractIfcTags>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: raksha::analysis::taint::AbstractSemanticsTest::InvokeOperationTransformer
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 3
    functionsReached:
    - AbstractSemantics::ApplyOperationTransformer
    linkageType: ''
    returnType: std::vector<AbstractIfcTags>
    signature: "std::vector<AbstractIfcTags> InvokeOperationTransformer(\n      InferenceRules
      rules, const ir::Operation& operation,\n      const std::vector<AbstractIfcTags>&
      inputs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:78,1
    - Dst: raksha::analysis::taint::InferenceRules::GetOutputRulesForOperation
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - num_inputs
    - num_outputs
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: raksha::analysis::taint::AbstractSemanticsTest::BuildOperation
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - raksha::analysis::taint::InferenceRules::GetOutputRulesForOperation
    - CHECK
    linkageType: ''
    returnType: ir::Operation
    signature: ir::Operation BuildOperation(uint64_t num_inputs, uint64_t num_outputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ir::types::TypeFactory::MakePrimitiveType
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:89,1
    - Dst: InferenceRules
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:93,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:96,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:96,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:96,1
    - Dst: raksha::ir::value::StoredValue::StoredValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:96,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:97,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:97,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:98,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:98,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:99,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:99,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:100,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:100,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:101,1
    - Dst: AbstractSemantics::GetInitialState
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:101,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
    - AbstractSemantics::GetInitialState
    - raksha::ir::value::StoredValue::StoredValue
    - EXPECT_TRUE
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - raksha::backends::policy_engine::MakeOperationResultValue
    - AbstractIfcTags
    - InferenceRules
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - ir::types::TypeFactory::MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractSemanticsTest, GetInitialStateReturnsEmptySets)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:141,1
    - Dst: BuildOperation
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:145,1
    - Dst: std::vector::size
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:145,1
    - Dst: InvokeOperationTransformer
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:147,1
    - Dst: InferenceRules
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:147,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:149,1
    - Dst: SizeIs
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:149,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:150,1
    - Dst: Each
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:150,1
    - Dst: IsEquivalentTo
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 151
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - SizeIs
    - Each
    - InferenceRules
    - EXPECT_THAT
    - InvokeOperationTransformer
    - BuildOperation
    - IsEquivalentTo
    - GetParam
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TEST_P(DefaultBehaviorTest, NoInferenceRuleResultsInDefaultBehavior)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:164,1
    - Dst: GetInputExample
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:167,1
    - Dst: BuildOperation
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:168,1
    - Dst: size
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:168,1
    - Dst: utils::MapIter<InferenceRule>
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:172,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:176,1
    - Dst: InferenceRulesBuilder::AddOutputRulesForAction
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:177,1
    - Dst: raksha::analysis::taint::AbstractSemanticsTest::InvokeOperationTransformer
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:181,1
    - Dst: InferenceRulesBuilder::Build
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - num_outputs
    - output_index
    - ' test_case'
    - ' premises'
    argTypes:
    - uint64_t
    - uint64_t
    - AbstractSemanticsTestCase
    - std::vector<InputHasIntegrity>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 183
    functionName: raksha::analysis::taint::InferenceRuleInterpretationTest::InvokeOperationTransformer
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - GetInputExample
    - raksha::analysis::taint::AbstractSemanticsTest::InvokeOperationTransformer
    - InferenceRulesBuilder::AddOutputRulesForAction
    - InferenceRulesBuilder::MarkOperationAsAction
    - InferenceRulesBuilder::Build
    - utils::MapIter<InferenceRule>
    - CHECK
    - BuildOperation
    - size
    linkageType: ''
    returnType: std::vector<AbstractIfcTags>
    signature: "std::vector<AbstractIfcTags> InvokeOperationTransformer(\n      uint64_t
      num_outputs, uint64_t output_index,\n      const AbstractSemanticsTestCase&
      test_case,\n      const std::vector<InputHasIntegrity>& premises)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:187,1
    - Dst: raksha::analysis::taint::GetInputExample
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:189,1
    - Dst: InvokeOperationTransformer
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:201,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:204,1
    - Dst: SizeIs
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:204,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:205,1
    - Dst: Pointwise
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:205,1
    - Dst: ElementIsEquivalentTo
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 207
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 0
    functionsReached:
    - SizeIs
    - ElementIsEquivalentTo
    - EXPECT_THAT
    - Pointwise
    - InvokeOperationTransformer
    - raksha::analysis::taint::GetInputExample
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(InferenceRuleInterpretationTest, OutputRulesAreApplied)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:315,1
    - Dst: contains
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:315,1
    - Dst: at
      Src: /src/raksha/src/analysis/taint/abstract_semantics_test.cc:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 318
    functionName: raksha::analysis::taint::GetInputExample
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    functionUses: 4
    functionsReached:
    - contains
    - at
    - CHECK
    linkageType: ''
    returnType: InputExample
    signature: InputExample & GetInputExample(absl::string_view key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:41,1
    - Dst: raksha::analysis::taint::IfcTags::Create
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:42,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:43,1
    - Dst: IfcTagsPtr::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:43,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:44,1
    - Dst: IfcTagsPtr::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - IfcTagsPtr::integrity_tags
    - raksha::analysis::taint::IfcTags::Create
    - EXPECT_THAT
    - IfcTagsPtr::secrecy_tags
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IfcTagsConstructionTest, FactoryMethodSetsTheTagsCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:83,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:83,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:84,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:84,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:85,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:85,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:86,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:86,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:87,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - AbstractIfcTags
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, IsBottomBehavesCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:91,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:91,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:92,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:92,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:93,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:93,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:94,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:94,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:95,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:95,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:96,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:96,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:97,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:97,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:98,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:98,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:99,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - AbstractIfcTags
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, HasNoSecrecyTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:103,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:103,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:104,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:104,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:105,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:105,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:106,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:106,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:107,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:107,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:108,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:108,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:109,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:109,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:110,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:110,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:111,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:111,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:112,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:112,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:113,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:113,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:114,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:114,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:115,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 116
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - AbstractIfcTags
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, HasIntegrityTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:119,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:121,1
    - Dst: AbstractIfcTags::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:121,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:121,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:122,1
    - Dst: AbstractIfcTags::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:122,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - AbstractIfcTags::integrity_tags
    - EXPECT_THAT
    - GetParam
    - AbstractIfcTags::secrecy_tags
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsTest, ConstructionWorksCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:126,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsDeathTest, AccessingSecrecyTagsOnBottomFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:130,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsDeathTest, AccessingIntegrityTagsOnBottomFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:135,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:136,1
    - Dst: AbstractIfcTags::SetSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:136,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:137,1
    - Dst: AbstractIfcTags::SetSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    - AbstractIfcTags::SetSecrecy
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, SetSecrecyOnBottomReturnsBottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:141,1
    - Dst: AbstractIfcTags::SetSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:143,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:144,1
    - Dst: AbstractIfcTags::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:144,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:144,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:145,1
    - Dst: AbstractIfcTags::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:145,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - EXPECT_THAT
    - AbstractIfcTags::integrity_tags
    - AbstractIfcTags::SetSecrecy
    - GetParam
    - AbstractIfcTags::secrecy_tags
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsTest, SetSecrecyUpdatesSecrecyTagsOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:149,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:150,1
    - Dst: AbstractIfcTags::ClearSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:150,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:151,1
    - Dst: AbstractIfcTags::ClearSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    - AbstractIfcTags::ClearSecrecy
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, ClearSecrecyOnBottomReturnsBottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:155,1
    - Dst: AbstractIfcTags::ClearSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:157,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:158,1
    - Dst: AbstractIfcTags::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:158,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:158,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:159,1
    - Dst: AbstractIfcTags::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:159,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - EXPECT_THAT
    - AbstractIfcTags::integrity_tags
    - AbstractIfcTags::ClearSecrecy
    - GetParam
    - AbstractIfcTags::secrecy_tags
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsTest, ClearSecrecyUpdatesSecrecyTagsOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:163,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:164,1
    - Dst: AbstractIfcTags::SetIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:164,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:165,1
    - Dst: AbstractIfcTags::SetIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - AbstractIfcTags::SetIntegrity
    - EXPECT_TRUE
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, SetIntegrityOnBottomReturnsBottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:169,1
    - Dst: AbstractIfcTags::SetIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:171,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:172,1
    - Dst: AbstractIfcTags::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:172,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:172,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:173,1
    - Dst: AbstractIfcTags::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:173,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - AbstractIfcTags::SetIntegrity
    - Eq
    - EXPECT_THAT
    - AbstractIfcTags::integrity_tags
    - GetParam
    - AbstractIfcTags::secrecy_tags
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsTest, SetIntegrityUpdatesIntegrityTagsOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:177,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:178,1
    - Dst: AbstractIfcTags::ClearIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:178,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:179,1
    - Dst: AbstractIfcTags::ClearIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - AbstractIfcTags::ClearIntegrity
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, ClearIntegrityOnBottomReturnsBottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:183,1
    - Dst: AbstractIfcTags::ClearIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:185,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:186,1
    - Dst: AbstractIfcTags::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:186,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:186,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:187,1
    - Dst: AbstractIfcTags::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:187,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - AbstractIfcTags::ClearIntegrity
    - EXPECT_THAT
    - AbstractIfcTags::integrity_tags
    - GetParam
    - AbstractIfcTags::secrecy_tags
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsTest, ClearIntegrityUpdatesIntegrityTagsOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:215,1
    - Dst: IsEquivalentTo
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IsEquivalentTo
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsIsEquivalentToTest, IsEquivalentToWorksCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:292,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:294,1
    - Dst: AbstractIfcTags::Join
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:295,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:295,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:296,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 298
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    - GetParam
    - AbstractIfcTags::Join
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsJoinBottomTest, BottomActsAsIdentity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:308,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:313,1
    - Dst: AbstractIfcTags::Join
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 314
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - GetParam
    - AbstractIfcTags::Join
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsJoinTest, JoinWorksCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:360,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:361,1
    - Dst: ToString
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:361,1
    - Dst: AnyOfArray
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - EXPECT_THAT
    - GetParam
    - AnyOfArray
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsToStringTest, ToStringIsAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:41,1
    - Dst: raksha::analysis::taint::IfcTags::Create
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:42,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:43,1
    - Dst: IfcTagsPtr::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:43,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:44,1
    - Dst: IfcTagsPtr::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - IfcTagsPtr::integrity_tags
    - raksha::analysis::taint::IfcTags::Create
    - EXPECT_THAT
    - IfcTagsPtr::secrecy_tags
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IfcTagsConstructionTest, FactoryMethodSetsTheTagsCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:83,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:83,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:84,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:84,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:85,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:85,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:86,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:86,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:87,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - AbstractIfcTags
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, IsBottomBehavesCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:91,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:91,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:92,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:92,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:93,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:93,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:94,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:94,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:95,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:95,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:96,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:96,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:97,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:97,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:98,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:98,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:99,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - AbstractIfcTags
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, HasNoSecrecyTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:103,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:103,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:104,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:104,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:105,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:105,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:106,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:106,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:107,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:107,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:108,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:108,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:109,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:109,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:110,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:110,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:111,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:111,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:112,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:112,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:113,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:113,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:114,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:114,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:115,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 116
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - AbstractIfcTags
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, HasIntegrityTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:119,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:121,1
    - Dst: AbstractIfcTags::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:121,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:121,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:122,1
    - Dst: AbstractIfcTags::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:122,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - AbstractIfcTags::integrity_tags
    - EXPECT_THAT
    - GetParam
    - AbstractIfcTags::secrecy_tags
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsTest, ConstructionWorksCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:126,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsDeathTest, AccessingSecrecyTagsOnBottomFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:130,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsDeathTest, AccessingIntegrityTagsOnBottomFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:135,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:136,1
    - Dst: AbstractIfcTags::SetSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:136,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:137,1
    - Dst: AbstractIfcTags::SetSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    - AbstractIfcTags::SetSecrecy
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, SetSecrecyOnBottomReturnsBottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:141,1
    - Dst: AbstractIfcTags::SetSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:143,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:144,1
    - Dst: AbstractIfcTags::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:144,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:144,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:145,1
    - Dst: AbstractIfcTags::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:145,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - EXPECT_THAT
    - AbstractIfcTags::integrity_tags
    - AbstractIfcTags::SetSecrecy
    - GetParam
    - AbstractIfcTags::secrecy_tags
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsTest, SetSecrecyUpdatesSecrecyTagsOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:149,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:150,1
    - Dst: AbstractIfcTags::ClearSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:150,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:151,1
    - Dst: AbstractIfcTags::ClearSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    - AbstractIfcTags::ClearSecrecy
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, ClearSecrecyOnBottomReturnsBottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:155,1
    - Dst: AbstractIfcTags::ClearSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:157,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:158,1
    - Dst: AbstractIfcTags::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:158,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:158,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:159,1
    - Dst: AbstractIfcTags::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:159,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - EXPECT_THAT
    - AbstractIfcTags::integrity_tags
    - AbstractIfcTags::ClearSecrecy
    - GetParam
    - AbstractIfcTags::secrecy_tags
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsTest, ClearSecrecyUpdatesSecrecyTagsOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:163,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:164,1
    - Dst: AbstractIfcTags::SetIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:164,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:165,1
    - Dst: AbstractIfcTags::SetIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - AbstractIfcTags::SetIntegrity
    - EXPECT_TRUE
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, SetIntegrityOnBottomReturnsBottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:169,1
    - Dst: AbstractIfcTags::SetIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:171,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:172,1
    - Dst: AbstractIfcTags::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:172,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:172,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:173,1
    - Dst: AbstractIfcTags::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:173,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - AbstractIfcTags::SetIntegrity
    - Eq
    - EXPECT_THAT
    - AbstractIfcTags::integrity_tags
    - GetParam
    - AbstractIfcTags::secrecy_tags
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsTest, SetIntegrityUpdatesIntegrityTagsOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:177,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:178,1
    - Dst: AbstractIfcTags::ClearIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:178,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:179,1
    - Dst: AbstractIfcTags::ClearIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - AbstractIfcTags::ClearIntegrity
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, ClearIntegrityOnBottomReturnsBottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:183,1
    - Dst: AbstractIfcTags::ClearIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:185,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:186,1
    - Dst: AbstractIfcTags::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:186,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:186,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:187,1
    - Dst: AbstractIfcTags::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:187,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - AbstractIfcTags::ClearIntegrity
    - EXPECT_THAT
    - AbstractIfcTags::integrity_tags
    - GetParam
    - AbstractIfcTags::secrecy_tags
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsTest, ClearIntegrityUpdatesIntegrityTagsOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:215,1
    - Dst: IsEquivalentTo
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IsEquivalentTo
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsIsEquivalentToTest, IsEquivalentToWorksCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:292,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:294,1
    - Dst: AbstractIfcTags::Join
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:295,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:295,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:296,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 298
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    - GetParam
    - AbstractIfcTags::Join
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsJoinBottomTest, BottomActsAsIdentity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:308,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:313,1
    - Dst: AbstractIfcTags::Join
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 314
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - GetParam
    - AbstractIfcTags::Join
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsJoinTest, JoinWorksCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:360,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:361,1
    - Dst: ToString
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:361,1
    - Dst: AnyOfArray
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - EXPECT_THAT
    - GetParam
    - AnyOfArray
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsToStringTest, ToStringIsAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:41,1
    - Dst: raksha::analysis::taint::IfcTags::Create
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:42,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:43,1
    - Dst: IfcTagsPtr::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:43,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:44,1
    - Dst: IfcTagsPtr::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - IfcTagsPtr::integrity_tags
    - raksha::analysis::taint::IfcTags::Create
    - EXPECT_THAT
    - IfcTagsPtr::secrecy_tags
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IfcTagsConstructionTest, FactoryMethodSetsTheTagsCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:83,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:83,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:84,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:84,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:85,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:85,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:86,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:86,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:87,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - AbstractIfcTags
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, IsBottomBehavesCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:91,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:91,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:92,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:92,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:93,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:93,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:94,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:94,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:95,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:95,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:96,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:96,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:97,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:97,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:98,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:98,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:99,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - AbstractIfcTags
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, HasNoSecrecyTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:103,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:103,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:104,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:104,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:105,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:105,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:106,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:106,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:107,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:107,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:108,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:108,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:109,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:109,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:110,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:110,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:111,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:111,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:112,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:112,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:113,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:113,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:114,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:114,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:115,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 116
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - AbstractIfcTags
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, HasIntegrityTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:119,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:121,1
    - Dst: AbstractIfcTags::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:121,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:121,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:122,1
    - Dst: AbstractIfcTags::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:122,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - AbstractIfcTags::integrity_tags
    - EXPECT_THAT
    - GetParam
    - AbstractIfcTags::secrecy_tags
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsTest, ConstructionWorksCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:126,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsDeathTest, AccessingSecrecyTagsOnBottomFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:130,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsDeathTest, AccessingIntegrityTagsOnBottomFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:135,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:136,1
    - Dst: AbstractIfcTags::SetSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:136,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:137,1
    - Dst: AbstractIfcTags::SetSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    - AbstractIfcTags::SetSecrecy
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, SetSecrecyOnBottomReturnsBottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:141,1
    - Dst: AbstractIfcTags::SetSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:143,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:144,1
    - Dst: AbstractIfcTags::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:144,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:144,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:145,1
    - Dst: AbstractIfcTags::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:145,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - EXPECT_THAT
    - AbstractIfcTags::integrity_tags
    - AbstractIfcTags::SetSecrecy
    - GetParam
    - AbstractIfcTags::secrecy_tags
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsTest, SetSecrecyUpdatesSecrecyTagsOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:149,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:150,1
    - Dst: AbstractIfcTags::ClearSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:150,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:151,1
    - Dst: AbstractIfcTags::ClearSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    - AbstractIfcTags::ClearSecrecy
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, ClearSecrecyOnBottomReturnsBottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:155,1
    - Dst: AbstractIfcTags::ClearSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:157,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:158,1
    - Dst: AbstractIfcTags::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:158,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:158,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:159,1
    - Dst: AbstractIfcTags::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:159,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - EXPECT_THAT
    - AbstractIfcTags::integrity_tags
    - AbstractIfcTags::ClearSecrecy
    - GetParam
    - AbstractIfcTags::secrecy_tags
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsTest, ClearSecrecyUpdatesSecrecyTagsOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:163,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:164,1
    - Dst: AbstractIfcTags::SetIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:164,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:165,1
    - Dst: AbstractIfcTags::SetIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - AbstractIfcTags::SetIntegrity
    - EXPECT_TRUE
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, SetIntegrityOnBottomReturnsBottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:169,1
    - Dst: AbstractIfcTags::SetIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:171,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:172,1
    - Dst: AbstractIfcTags::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:172,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:172,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:173,1
    - Dst: AbstractIfcTags::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:173,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - AbstractIfcTags::SetIntegrity
    - Eq
    - EXPECT_THAT
    - AbstractIfcTags::integrity_tags
    - GetParam
    - AbstractIfcTags::secrecy_tags
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsTest, SetIntegrityUpdatesIntegrityTagsOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:177,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:178,1
    - Dst: AbstractIfcTags::ClearIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:178,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:179,1
    - Dst: AbstractIfcTags::ClearIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - AbstractIfcTags::ClearIntegrity
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, ClearIntegrityOnBottomReturnsBottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:183,1
    - Dst: AbstractIfcTags::ClearIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:185,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:186,1
    - Dst: AbstractIfcTags::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:186,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:186,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:187,1
    - Dst: AbstractIfcTags::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:187,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - AbstractIfcTags::ClearIntegrity
    - EXPECT_THAT
    - AbstractIfcTags::integrity_tags
    - GetParam
    - AbstractIfcTags::secrecy_tags
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsTest, ClearIntegrityUpdatesIntegrityTagsOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:215,1
    - Dst: IsEquivalentTo
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IsEquivalentTo
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsIsEquivalentToTest, IsEquivalentToWorksCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:292,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:294,1
    - Dst: AbstractIfcTags::Join
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:295,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:295,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:296,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 298
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    - GetParam
    - AbstractIfcTags::Join
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsJoinBottomTest, BottomActsAsIdentity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:308,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:313,1
    - Dst: AbstractIfcTags::Join
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 314
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - GetParam
    - AbstractIfcTags::Join
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsJoinTest, JoinWorksCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:360,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:361,1
    - Dst: ToString
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:361,1
    - Dst: AnyOfArray
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - EXPECT_THAT
    - GetParam
    - AnyOfArray
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsToStringTest, ToStringIsAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:41,1
    - Dst: raksha::analysis::taint::IfcTags::Create
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:42,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:43,1
    - Dst: IfcTagsPtr::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:43,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:44,1
    - Dst: IfcTagsPtr::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - IfcTagsPtr::integrity_tags
    - raksha::analysis::taint::IfcTags::Create
    - EXPECT_THAT
    - IfcTagsPtr::secrecy_tags
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IfcTagsConstructionTest, FactoryMethodSetsTheTagsCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:83,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:83,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:84,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:84,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:85,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:85,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:86,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:86,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:87,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - AbstractIfcTags
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, IsBottomBehavesCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:91,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:91,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:92,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:92,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:93,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:93,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:94,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:94,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:95,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:95,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:96,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:96,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:97,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:97,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:98,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:98,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:99,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - AbstractIfcTags
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, HasNoSecrecyTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:103,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:103,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:104,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:104,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:105,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:105,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:106,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:106,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:107,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:107,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:108,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:108,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:109,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:109,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:110,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:110,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:111,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:111,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:112,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:112,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:113,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:113,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:114,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:114,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:115,1
    - Dst: AbstractIfcTags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 116
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - AbstractIfcTags
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, HasIntegrityTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:119,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:121,1
    - Dst: AbstractIfcTags::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:121,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:121,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:122,1
    - Dst: AbstractIfcTags::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:122,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - AbstractIfcTags::integrity_tags
    - EXPECT_THAT
    - GetParam
    - AbstractIfcTags::secrecy_tags
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsTest, ConstructionWorksCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:126,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsDeathTest, AccessingSecrecyTagsOnBottomFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:130,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsDeathTest, AccessingIntegrityTagsOnBottomFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:135,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:136,1
    - Dst: AbstractIfcTags::SetSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:136,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:137,1
    - Dst: AbstractIfcTags::SetSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    - AbstractIfcTags::SetSecrecy
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, SetSecrecyOnBottomReturnsBottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:141,1
    - Dst: AbstractIfcTags::SetSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:143,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:144,1
    - Dst: AbstractIfcTags::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:144,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:144,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:145,1
    - Dst: AbstractIfcTags::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:145,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - EXPECT_THAT
    - AbstractIfcTags::integrity_tags
    - AbstractIfcTags::SetSecrecy
    - GetParam
    - AbstractIfcTags::secrecy_tags
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsTest, SetSecrecyUpdatesSecrecyTagsOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:149,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:150,1
    - Dst: AbstractIfcTags::ClearSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:150,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:151,1
    - Dst: AbstractIfcTags::ClearSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    - AbstractIfcTags::ClearSecrecy
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, ClearSecrecyOnBottomReturnsBottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:155,1
    - Dst: AbstractIfcTags::ClearSecrecy
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:157,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:158,1
    - Dst: AbstractIfcTags::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:158,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:158,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:159,1
    - Dst: AbstractIfcTags::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:159,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - EXPECT_THAT
    - AbstractIfcTags::integrity_tags
    - AbstractIfcTags::ClearSecrecy
    - GetParam
    - AbstractIfcTags::secrecy_tags
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsTest, ClearSecrecyUpdatesSecrecyTagsOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:163,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:164,1
    - Dst: AbstractIfcTags::SetIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:164,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:165,1
    - Dst: AbstractIfcTags::SetIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - AbstractIfcTags::SetIntegrity
    - EXPECT_TRUE
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, SetIntegrityOnBottomReturnsBottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:169,1
    - Dst: AbstractIfcTags::SetIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:171,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:172,1
    - Dst: AbstractIfcTags::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:172,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:172,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:173,1
    - Dst: AbstractIfcTags::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:173,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - AbstractIfcTags::SetIntegrity
    - Eq
    - EXPECT_THAT
    - AbstractIfcTags::integrity_tags
    - GetParam
    - AbstractIfcTags::secrecy_tags
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsTest, SetIntegrityUpdatesIntegrityTagsOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:177,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:178,1
    - Dst: AbstractIfcTags::ClearIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:178,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:179,1
    - Dst: AbstractIfcTags::ClearIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: raksha::analysis::taint::TEST
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - AbstractIfcTags::ClearIntegrity
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    linkageType: ''
    returnType: void
    signature: void TEST(AbstractIfcTagsTest, ClearIntegrityOnBottomReturnsBottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:183,1
    - Dst: AbstractIfcTags::ClearIntegrity
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:185,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:186,1
    - Dst: AbstractIfcTags::secrecy_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:186,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:186,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:187,1
    - Dst: AbstractIfcTags::integrity_tags
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:187,1
    - Dst: Eq
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - Eq
    - AbstractIfcTags::ClearIntegrity
    - EXPECT_THAT
    - AbstractIfcTags::integrity_tags
    - GetParam
    - AbstractIfcTags::secrecy_tags
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsTest, ClearIntegrityUpdatesIntegrityTagsOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:215,1
    - Dst: IsEquivalentTo
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IsEquivalentTo
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsIsEquivalentToTest, IsEquivalentToWorksCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:292,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:294,1
    - Dst: AbstractIfcTags::Join
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:295,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:295,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:296,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 298
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    - GetParam
    - AbstractIfcTags::Join
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsJoinBottomTest, BottomActsAsIdentity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:308,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:313,1
    - Dst: AbstractIfcTags::Join
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 314
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - GetParam
    - AbstractIfcTags::Join
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsJoinTest, JoinWorksCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:360,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:361,1
    - Dst: ToString
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:361,1
    - Dst: AnyOfArray
      Src: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: raksha::analysis::taint::TEST_P
    functionSourceFile: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - EXPECT_THAT
    - GetParam
    - AnyOfArray
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractIfcTagsToStringTest, ToStringIsAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: souffle::ProgramFactory::newInstance
      Src: /src/raksha/src/analysis/souffle/cpp_interface_test.cc:27,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/analysis/souffle/cpp_interface_test.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: TEST
    functionSourceFile: /src/raksha/src/analysis/souffle/cpp_interface_test.cc
    functionUses: 0
    functionsReached:
    - souffle::ProgramFactory::newInstance
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(CppInterfaceTest, CanLoadDatalogProgram)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/souffle/functors.cc:30,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/souffle/functors.cc:31,1
    - Dst: souffle::ramBitCast<souffle::RamFloat>
      Src: /src/raksha/src/analysis/souffle/functors.cc:32,1
    - Dst: std::log10
      Src: /src/raksha/src/analysis/souffle/functors.cc:33,1
    - Dst: souffle::SymbolTable*::encode
      Src: /src/raksha/src/analysis/souffle/functors.cc:34,1
    - Dst: std::to_string
      Src: /src/raksha/src/analysis/souffle/functors.cc:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - symbolTable
    - recordTable
    - n
    argTypes:
    - souffle::SymbolTable*
    - souffle::RecordTable*
    - souffle::RamDomain
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: log_wrapper
    functionSourceFile: /src/raksha/src/analysis/souffle/functors.cc
    functionUses: 0
    functionsReached:
    - std::log10
    - souffle::ramBitCast<souffle::RamFloat>
    - CHECK
    - std::to_string
    - souffle::SymbolTable*::encode
    linkageType: ''
    returnType: souffle::RamDomain
    signature: "souffle::RamDomain log_wrapper(souffle::SymbolTable *symbolTable,\n
      \                              souffle::RecordTable *recordTable,\n                               souffle::RamDomain
      n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_wrapper
      Src: /src/raksha/src/analysis/souffle/functors.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - symbolTable
    - recordTable
    - n
    argTypes:
    - souffle::SymbolTable*
    - souffle::RecordTable*
    - souffle::RamDomain
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: log_wrapper_cxx
    functionSourceFile: /src/raksha/src/analysis/souffle/functors.cc
    functionUses: 0
    functionsReached:
    - log_wrapper
    linkageType: ''
    returnType: souffle::RamDomain
    signature: "souffle::RamDomain log_wrapper_cxx(souffle::SymbolTable *symbolTable,\n
      \                                  souffle::RecordTable *recordTable,\n                                   souffle::RamDomain
      n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:34,1
    - Dst: ::souffle::ramBitCast<::souffle::RamDomain>
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:36,1
    - Dst: log_wrapper_cxx
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:38,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:40,1
    - Dst: stof
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:40,1
    - Dst: decode
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: raksha::analsis::souffle::TEST_P
    functionSourceFile: /src/raksha/src/analysis/souffle/functors_test.cc
    functionUses: 0
    functionsReached:
    - ::souffle::ramBitCast<::souffle::RamDomain>
    - decode
    - stof
    - EXPECT_THAT
    - log_wrapper_cxx
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(LogFunctorTest, LogFunctorTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:34,1
    - Dst: ::souffle::ramBitCast<::souffle::RamDomain>
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:36,1
    - Dst: log_wrapper_cxx
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:38,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:40,1
    - Dst: stof
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:40,1
    - Dst: decode
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: raksha::analsis::souffle::TEST_P
    functionSourceFile: /src/raksha/src/analysis/souffle/functors_test.cc
    functionUses: 0
    functionsReached:
    - ::souffle::ramBitCast<::souffle::RamDomain>
    - decode
    - stof
    - EXPECT_THAT
    - log_wrapper_cxx
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(LogFunctorTest, LogFunctorTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:34,1
    - Dst: ::souffle::ramBitCast<::souffle::RamDomain>
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:36,1
    - Dst: log_wrapper_cxx
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:38,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:40,1
    - Dst: stof
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:40,1
    - Dst: decode
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: raksha::analsis::souffle::TEST_P
    functionSourceFile: /src/raksha/src/analysis/souffle/functors_test.cc
    functionUses: 0
    functionsReached:
    - ::souffle::ramBitCast<::souffle::RamDomain>
    - decode
    - stof
    - EXPECT_THAT
    - log_wrapper_cxx
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(LogFunctorTest, LogFunctorTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:34,1
    - Dst: ::souffle::ramBitCast<::souffle::RamDomain>
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:36,1
    - Dst: log_wrapper_cxx
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:38,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:40,1
    - Dst: stof
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:40,1
    - Dst: decode
      Src: /src/raksha/src/analysis/souffle/functors_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: raksha::analsis::souffle::TEST_P
    functionSourceFile: /src/raksha/src/analysis/souffle/functors_test.cc
    functionUses: 0
    functionsReached:
    - ::souffle::ramBitCast<::souffle::RamDomain>
    - decode
    - stof
    - EXPECT_THAT
    - log_wrapper_cxx
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(LogFunctorTest, LogFunctorTest)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/raksha/src/analysis/souffle/tests/arcs_fact_tests/fact_test_driver.cc:34,1
    - Dst: std::unique_ptr::run
      Src: /src/raksha/src/analysis/souffle/tests/arcs_fact_tests/fact_test_driver.cc:36,1
    - Dst: std::unique_ptr::getRelation
      Src: /src/raksha/src/analysis/souffle/tests/arcs_fact_tests/fact_test_driver.cc:38,1
    - Dst: std::unique_ptr::getRelation
      Src: /src/raksha/src/analysis/souffle/tests/arcs_fact_tests/fact_test_driver.cc:39,1
    - Dst: std::unique_ptr::getRelation
      Src: /src/raksha/src/analysis/souffle/tests/arcs_fact_tests/fact_test_driver.cc:41,1
    - Dst: assert
      Src: /src/raksha/src/analysis/souffle/tests/arcs_fact_tests/fact_test_driver.cc:43,1
    - Dst: souffle::Relation*::size
      Src: /src/raksha/src/analysis/souffle/tests/arcs_fact_tests/fact_test_driver.cc:45,1
    - Dst: souffle::Relation*::size
      Src: /src/raksha/src/analysis/souffle/tests/arcs_fact_tests/fact_test_driver.cc:46,1
    - Dst: souffle::Relation*::size
      Src: /src/raksha/src/analysis/souffle/tests/arcs_fact_tests/fact_test_driver.cc:47,1
    - Dst: std::unique_ptr::printAll
      Src: /src/raksha/src/analysis/souffle/tests/arcs_fact_tests/fact_test_driver.cc:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - test_name
    argTypes:
    - std::string
    assertStmts:
    - condition: (prog != nullptr)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/raksha/src/analysis/souffle/tests/arcs_fact_tests/fact_test_driver.cc
    - condition: (test_failures != nullptr)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/raksha/src/analysis/souffle/tests/arcs_fact_tests/fact_test_driver.cc
    constantsTouched: []
    func_position:
      end: 69
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 69
    functionName: run_test
    functionSourceFile: /src/raksha/src/analysis/souffle/tests/arcs_fact_tests/fact_test_driver.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::run
    - assert
    - std::unique_ptr::printAll
    - souffle::Relation*::size
    - std::unique_ptr::getRelation
    linkageType: ''
    returnType: int
    signature: int run_test(std::string const &test_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/raksha/src/analysis/souffle/tests/arcs_fact_tests/fact_test_driver.cc:75,1
    - Dst: std::string
      Src: /src/raksha/src/analysis/souffle/tests/arcs_fact_tests/fact_test_driver.cc:76,1
    - Dst: std::string
      Src: /src/raksha/src/analysis/souffle/tests/arcs_fact_tests/fact_test_driver.cc:77,1
    - Dst: run_test
      Src: /src/raksha/src/analysis/souffle/tests/arcs_fact_tests/fact_test_driver.cc:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: ((argc == 2) || (argc == 3))
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/raksha/src/analysis/souffle/tests/arcs_fact_tests/fact_test_driver.cc
    constantsTouched: []
    func_position:
      end: 86
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 86
    functionName: main
    functionSourceFile: /src/raksha/src/analysis/souffle/tests/arcs_fact_tests/fact_test_driver.cc
    functionUses: 0
    functionsReached:
    - std::string
    - run_test
    - assert
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' target'
    - ' source'
    argTypes:
    - std::pair<EdgeIndex, Node>
    - Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: "operator()(const std::pair<EdgeIndex, Node>& target,\n                    const
      Node& source)"
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Edge
    signature: "Edge operator()(const std::pair<EdgeIndex, Node>& target,\n                    const
      Node& source)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_graph.h:59,1
    - Dst: std::holds_alternative<T>
      Src: /src/raksha/src/analysis/common/module_graph.h:59,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/common/module_graph.h:61,1
    - Dst: std::get<T>
      Src: /src/raksha/src/analysis/common/module_graph.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - std::pair<EdgeIndex, Node>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: "operator()(\n        const std::pair<EdgeIndex, Node>& target)"
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.h
    functionUses: 0
    functionsReached:
    - std::make_pair
    - CHECK
    - std::get<T>
    - std::holds_alternative<T>
    linkageType: ''
    returnType: std::pair<EdgeIndex, T>
    signature: "std::pair<EdgeIndex, T> operator()(\n        const std::pair<EdgeIndex,
      Node>& target)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::ranges::keys
      Src: /src/raksha/src/analysis/common/module_graph.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: raksha::analysis::common::ModuleGraph::GetNodes
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.h
    functionUses: 0
    functionsReached:
    - raksha::utils::ranges::keys
    linkageType: ''
    returnType: auto
    signature: auto GetNodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::make_adapted_range<EdgeMaterializer>
      Src: /src/raksha/src/analysis/common/module_graph.h:72,1
    - Dst: GetAdjacentNodes
      Src: /src/raksha/src/analysis/common/module_graph.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: raksha::analysis::common::ModuleGraph::GetOutEdges
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.h
    functionUses: 0
    functionsReached:
    - utils::make_adapted_range<EdgeMaterializer>
    - GetAdjacentNodes
    linkageType: ''
    returnType: auto
    signature: auto GetOutEdges(const Node& source) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::make_adapted_range<TargetMaterializer<const ir::Operation*>>
      Src: /src/raksha/src/analysis/common/module_graph.h:78,1
    - Dst: GetAdjacentNodes
      Src: /src/raksha/src/analysis/common/module_graph.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - ir::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: raksha::analysis::common::ModuleGraph::GetUses
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.h
    functionUses: 0
    functionsReached:
    - GetAdjacentNodes
    - utils::make_adapted_range<TargetMaterializer<const ir::Operation*>>
    linkageType: ''
    returnType: auto
    signature: auto GetUses(const ir::Value& value) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::make_adapted_range<TargetMaterializer<ir::Value>>
      Src: /src/raksha/src/analysis/common/module_graph.h:84,1
    - Dst: GetAdjacentNodes
      Src: /src/raksha/src/analysis/common/module_graph.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - operation
    argTypes:
    - ir::Operation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: raksha::analysis::common::ModuleGraph::GetResults
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.h
    functionUses: 0
    functionsReached:
    - utils::make_adapted_range<TargetMaterializer<ir::Value>>
    - GetAdjacentNodes
    linkageType: ''
    returnType: auto
    signature: auto GetResults(const ir::Operation* operation) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' edge'
    argTypes:
    - Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: '& GetEdgeSource(const Edge& edge) const'
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Node
    signature: Node & GetEdgeSource(const Edge& edge) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' edge'
    argTypes:
    - Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: '& GetEdgeTarget(const Edge& edge) const'
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Node
    signature: Node & GetEdgeTarget(const Edge& edge) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/analysis/common/module_graph.h:96,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_graph.h:97,1
    - Dst: end
      Src: /src/raksha/src/analysis/common/module_graph.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: '& GetAdjacentNodes(const Node& source) const'
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.h
    functionUses: 0
    functionsReached:
    - find
    - CHECK
    - end
    linkageType: ''
    returnType: AdjacencyList::mapped_type
    signature: AdjacencyList::mapped_type & GetAdjacentNodes(const Node& source) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' target'
    - ' source'
    argTypes:
    - std::pair<EdgeIndex, Node>
    - Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: "operator()(const std::pair<EdgeIndex, Node>& target,\n                    const
      Node& source)"
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Edge
    signature: "Edge operator()(const std::pair<EdgeIndex, Node>& target,\n                    const
      Node& source)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_graph.h:59,1
    - Dst: std::holds_alternative<T>
      Src: /src/raksha/src/analysis/common/module_graph.h:59,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/common/module_graph.h:61,1
    - Dst: std::get<T>
      Src: /src/raksha/src/analysis/common/module_graph.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' target'
    argTypes:
    - std::pair<EdgeIndex, Node>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: "operator()(\n        const std::pair<EdgeIndex, Node>& target)"
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.h
    functionUses: 0
    functionsReached:
    - std::make_pair
    - CHECK
    - std::get<T>
    - std::holds_alternative<T>
    linkageType: ''
    returnType: std::pair<EdgeIndex, T>
    signature: "std::pair<EdgeIndex, T> operator()(\n        const std::pair<EdgeIndex,
      Node>& target)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::ranges::keys
      Src: /src/raksha/src/analysis/common/module_graph.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: raksha::analysis::common::ModuleGraph::GetNodes
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.h
    functionUses: 0
    functionsReached:
    - raksha::utils::ranges::keys
    linkageType: ''
    returnType: auto
    signature: auto GetNodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::make_adapted_range<EdgeMaterializer>
      Src: /src/raksha/src/analysis/common/module_graph.h:72,1
    - Dst: GetAdjacentNodes
      Src: /src/raksha/src/analysis/common/module_graph.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: raksha::analysis::common::ModuleGraph::GetOutEdges
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.h
    functionUses: 0
    functionsReached:
    - utils::make_adapted_range<EdgeMaterializer>
    - GetAdjacentNodes
    linkageType: ''
    returnType: auto
    signature: auto GetOutEdges(const Node& source) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::make_adapted_range<TargetMaterializer<const ir::Operation*>>
      Src: /src/raksha/src/analysis/common/module_graph.h:78,1
    - Dst: GetAdjacentNodes
      Src: /src/raksha/src/analysis/common/module_graph.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - ir::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: raksha::analysis::common::ModuleGraph::GetUses
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.h
    functionUses: 0
    functionsReached:
    - GetAdjacentNodes
    - utils::make_adapted_range<TargetMaterializer<const ir::Operation*>>
    linkageType: ''
    returnType: auto
    signature: auto GetUses(const ir::Value& value) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::make_adapted_range<TargetMaterializer<ir::Value>>
      Src: /src/raksha/src/analysis/common/module_graph.h:84,1
    - Dst: GetAdjacentNodes
      Src: /src/raksha/src/analysis/common/module_graph.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - operation
    argTypes:
    - ir::Operation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: raksha::analysis::common::ModuleGraph::GetResults
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.h
    functionUses: 0
    functionsReached:
    - utils::make_adapted_range<TargetMaterializer<ir::Value>>
    - GetAdjacentNodes
    linkageType: ''
    returnType: auto
    signature: auto GetResults(const ir::Operation* operation) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' edge'
    argTypes:
    - Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: '& GetEdgeSource(const Edge& edge) const'
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Node
    signature: Node & GetEdgeSource(const Edge& edge) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' edge'
    argTypes:
    - Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: '& GetEdgeTarget(const Edge& edge) const'
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Node
    signature: Node & GetEdgeTarget(const Edge& edge) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/analysis/common/module_graph.h:96,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_graph.h:97,1
    - Dst: end
      Src: /src/raksha/src/analysis/common/module_graph.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: '& GetAdjacentNodes(const Node& source) const'
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.h
    functionUses: 0
    functionsReached:
    - find
    - CHECK
    - end
    linkageType: ''
    returnType: AdjacencyList::mapped_type
    signature: AdjacencyList::mapped_type & GetAdjacentNodes(const Node& source) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - operations
    argTypes:
    - absl::btree_set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void AbstractReachingOperations(absl::btree_set<std::string> operations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: raksha::analysis::common::AbstractReachingOperations::Bottom
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
    linkageType: ''
    returnType: AbstractReachingOperations
    signature: AbstractReachingOperations Bottom()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: raksha::analysis::common::AbstractReachingOperations::IsBottom
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool IsBottom() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AbstractReachingOperations
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: raksha::analysis::common::AbstractReachingOperations::IsEquivalentTo
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsEquivalentTo(const AbstractReachingOperations& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: '& operations() const'
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::btree_set<std::string>
    signature: absl::btree_set<std::string> & operations() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:53,1
    - Dst: std::string
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - operation
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: raksha::analysis::common::AbstractReachingOperations::AddOperation
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - insert
    linkageType: ''
    returnType: void
    signature: void AddOperation(absl::string_view operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::c_set_union
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:59,1
    - Dst: std::inserter
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:60,1
    - Dst: absl::btree_set::begin
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:60,1
    - Dst: raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AbstractReachingOperations
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: raksha::analysis::common::AbstractReachingOperations::Join
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - absl::c_set_union
    - std::inserter
    - absl::btree_set::begin
    - raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
    linkageType: ''
    returnType: AbstractReachingOperations
    signature: "AbstractReachingOperations Join(\n      const AbstractReachingOperations&
      other) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ssa_names
    argTypes:
    - ir::SsaNames*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: raksha::analysis::common::ReachingOperationsSemantics::ReachingOperationsSemantics
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    linkageType: ''
    returnType: void
    signature: void ReachingOperationsSemantics(ir::SsaNames* ssa_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:82,1
    - Dst: AbstractState
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:83,1
    - Dst: Join
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:85,1
    - Dst: inputs
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:89,1
    - Dst: auto::AddOperation
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:90,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:90,1
    - Dst: std::vector<AbstractState>
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:92,1
    - Dst: NumberOfOutputs
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' operation'
    - ' input_states'
    argTypes:
    - ir::Operation
    - std::vector<AbstractState>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 93
    functionName: raksha::analysis::common::ReachingOperationsSemantics::ApplyOperationTransformer
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - std::vector<AbstractState>
    - AbstractState
    - NumberOfOutputs
    - auto::AddOperation
    - inputs
    - Join
    - raksha::common::utils::fold
    - raksha::ir::ValueToString
    linkageType: ''
    returnType: std::vector<AbstractState>
    signature: "std::vector<AbstractState> ApplyOperationTransformer(\n      const
      ir::Operation& operation,\n      const std::vector<AbstractState>& input_states)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AbstractState
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:97,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:98,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - ir::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: raksha::analysis::common::ReachingOperationsSemantics::GetInitialState
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrCat
    - AbstractState
    - raksha::ir::ValueToString
    linkageType: ''
    returnType: AbstractState
    signature: AbstractState GetInitialState(const ir::Value& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:134,1
    - Dst: ParseProgram
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:135,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:136,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:137,1
    - Dst: IrProgramParserResult::ssa_names::get
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:137,1
    - Dst: ReachingOperationsAnalysis::ComputeFixpoint
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:138,1
    - Dst: ReachingOperationsSemantics
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:141,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:144,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:144,1
    - Dst: ValueFixpointEq
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 146
    functionName: raksha::analysis::common::TEST_P
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - ReachingOperationsSemantics
    - UnorderedPointwise
    - IrProgramParserResult::ssa_names::get
    - ValueFixpointEq
    - ParseProgram
    - EXPECT_THAT
    - ReachingOperationsAnalysis::ComputeFixpoint
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModuleFixpointIteratorTest, ComputesFixpoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - operations
    argTypes:
    - absl::btree_set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 2
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void AbstractReachingOperations(absl::btree_set<std::string> operations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: raksha::analysis::common::AbstractReachingOperations::Bottom
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
    linkageType: ''
    returnType: AbstractReachingOperations
    signature: AbstractReachingOperations Bottom()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: raksha::analysis::common::AbstractReachingOperations::IsBottom
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool IsBottom() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AbstractReachingOperations
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: raksha::analysis::common::AbstractReachingOperations::IsEquivalentTo
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsEquivalentTo(const AbstractReachingOperations& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: '& operations() const'
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::btree_set<std::string>
    signature: absl::btree_set<std::string> & operations() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:53,1
    - Dst: std::string
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - operation
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: raksha::analysis::common::AbstractReachingOperations::AddOperation
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - insert
    linkageType: ''
    returnType: void
    signature: void AddOperation(absl::string_view operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::c_set_union
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:59,1
    - Dst: std::inserter
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:60,1
    - Dst: absl::btree_set::begin
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:60,1
    - Dst: raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AbstractReachingOperations
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: raksha::analysis::common::AbstractReachingOperations::Join
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - absl::c_set_union
    - std::inserter
    - absl::btree_set::begin
    - raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
    linkageType: ''
    returnType: AbstractReachingOperations
    signature: "AbstractReachingOperations Join(\n      const AbstractReachingOperations&
      other) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ssa_names
    argTypes:
    - ir::SsaNames*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: raksha::analysis::common::ReachingOperationsSemantics::ReachingOperationsSemantics
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    linkageType: ''
    returnType: void
    signature: void ReachingOperationsSemantics(ir::SsaNames* ssa_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:82,1
    - Dst: AbstractState
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:83,1
    - Dst: Join
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:85,1
    - Dst: inputs
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:89,1
    - Dst: auto::AddOperation
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:90,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:90,1
    - Dst: std::vector<AbstractState>
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:92,1
    - Dst: NumberOfOutputs
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' operation'
    - ' input_states'
    argTypes:
    - ir::Operation
    - std::vector<AbstractState>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 93
    functionName: raksha::analysis::common::ReachingOperationsSemantics::ApplyOperationTransformer
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - std::vector<AbstractState>
    - AbstractState
    - NumberOfOutputs
    - auto::AddOperation
    - inputs
    - Join
    - raksha::common::utils::fold
    - raksha::ir::ValueToString
    linkageType: ''
    returnType: std::vector<AbstractState>
    signature: "std::vector<AbstractState> ApplyOperationTransformer(\n      const
      ir::Operation& operation,\n      const std::vector<AbstractState>& input_states)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AbstractState
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:97,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:98,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - ir::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: raksha::analysis::common::ReachingOperationsSemantics::GetInitialState
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrCat
    - AbstractState
    - raksha::ir::ValueToString
    linkageType: ''
    returnType: AbstractState
    signature: AbstractState GetInitialState(const ir::Value& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:134,1
    - Dst: ParseProgram
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:135,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:136,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:137,1
    - Dst: IrProgramParserResult::ssa_names::get
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:137,1
    - Dst: ReachingOperationsAnalysis::ComputeFixpoint
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:138,1
    - Dst: ReachingOperationsSemantics
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:141,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:144,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:144,1
    - Dst: ValueFixpointEq
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 146
    functionName: raksha::analysis::common::TEST_P
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - ReachingOperationsSemantics
    - UnorderedPointwise
    - IrProgramParserResult::ssa_names::get
    - ValueFixpointEq
    - ParseProgram
    - EXPECT_THAT
    - ReachingOperationsAnalysis::ComputeFixpoint
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModuleFixpointIteratorTest, ComputesFixpoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - operations
    argTypes:
    - absl::btree_set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 4
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void AbstractReachingOperations(absl::btree_set<std::string> operations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: raksha::analysis::common::AbstractReachingOperations::Bottom
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
    linkageType: ''
    returnType: AbstractReachingOperations
    signature: AbstractReachingOperations Bottom()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: raksha::analysis::common::AbstractReachingOperations::IsBottom
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool IsBottom() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AbstractReachingOperations
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: raksha::analysis::common::AbstractReachingOperations::IsEquivalentTo
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsEquivalentTo(const AbstractReachingOperations& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: '& operations() const'
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::btree_set<std::string>
    signature: absl::btree_set<std::string> & operations() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:53,1
    - Dst: std::string
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - operation
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: raksha::analysis::common::AbstractReachingOperations::AddOperation
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - insert
    linkageType: ''
    returnType: void
    signature: void AddOperation(absl::string_view operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::c_set_union
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:59,1
    - Dst: std::inserter
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:60,1
    - Dst: absl::btree_set::begin
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:60,1
    - Dst: raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AbstractReachingOperations
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: raksha::analysis::common::AbstractReachingOperations::Join
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - absl::c_set_union
    - std::inserter
    - absl::btree_set::begin
    - raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
    linkageType: ''
    returnType: AbstractReachingOperations
    signature: "AbstractReachingOperations Join(\n      const AbstractReachingOperations&
      other) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ssa_names
    argTypes:
    - ir::SsaNames*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: raksha::analysis::common::ReachingOperationsSemantics::ReachingOperationsSemantics
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    linkageType: ''
    returnType: void
    signature: void ReachingOperationsSemantics(ir::SsaNames* ssa_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:82,1
    - Dst: AbstractState
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:83,1
    - Dst: Join
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:85,1
    - Dst: inputs
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:89,1
    - Dst: auto::AddOperation
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:90,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:90,1
    - Dst: std::vector<AbstractState>
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:92,1
    - Dst: NumberOfOutputs
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' operation'
    - ' input_states'
    argTypes:
    - ir::Operation
    - std::vector<AbstractState>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 93
    functionName: raksha::analysis::common::ReachingOperationsSemantics::ApplyOperationTransformer
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - std::vector<AbstractState>
    - AbstractState
    - NumberOfOutputs
    - auto::AddOperation
    - inputs
    - Join
    - raksha::common::utils::fold
    - raksha::ir::ValueToString
    linkageType: ''
    returnType: std::vector<AbstractState>
    signature: "std::vector<AbstractState> ApplyOperationTransformer(\n      const
      ir::Operation& operation,\n      const std::vector<AbstractState>& input_states)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AbstractState
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:97,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:98,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - ir::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: raksha::analysis::common::ReachingOperationsSemantics::GetInitialState
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrCat
    - AbstractState
    - raksha::ir::ValueToString
    linkageType: ''
    returnType: AbstractState
    signature: AbstractState GetInitialState(const ir::Value& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:134,1
    - Dst: ParseProgram
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:135,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:136,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:137,1
    - Dst: IrProgramParserResult::ssa_names::get
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:137,1
    - Dst: ReachingOperationsAnalysis::ComputeFixpoint
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:138,1
    - Dst: ReachingOperationsSemantics
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:141,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:144,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:144,1
    - Dst: ValueFixpointEq
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 146
    functionName: raksha::analysis::common::TEST_P
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - ReachingOperationsSemantics
    - UnorderedPointwise
    - IrProgramParserResult::ssa_names::get
    - ValueFixpointEq
    - ParseProgram
    - EXPECT_THAT
    - ReachingOperationsAnalysis::ComputeFixpoint
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModuleFixpointIteratorTest, ComputesFixpoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - operations
    argTypes:
    - absl::btree_set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 6
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void AbstractReachingOperations(absl::btree_set<std::string> operations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: raksha::analysis::common::AbstractReachingOperations::Bottom
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
    linkageType: ''
    returnType: AbstractReachingOperations
    signature: AbstractReachingOperations Bottom()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: raksha::analysis::common::AbstractReachingOperations::IsBottom
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool IsBottom() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AbstractReachingOperations
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: raksha::analysis::common::AbstractReachingOperations::IsEquivalentTo
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsEquivalentTo(const AbstractReachingOperations& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: '& operations() const'
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::btree_set<std::string>
    signature: absl::btree_set<std::string> & operations() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:53,1
    - Dst: std::string
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - operation
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: raksha::analysis::common::AbstractReachingOperations::AddOperation
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - insert
    linkageType: ''
    returnType: void
    signature: void AddOperation(absl::string_view operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::c_set_union
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:59,1
    - Dst: std::inserter
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:60,1
    - Dst: absl::btree_set::begin
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:60,1
    - Dst: raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AbstractReachingOperations
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: raksha::analysis::common::AbstractReachingOperations::Join
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - absl::c_set_union
    - std::inserter
    - absl::btree_set::begin
    - raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
    linkageType: ''
    returnType: AbstractReachingOperations
    signature: "AbstractReachingOperations Join(\n      const AbstractReachingOperations&
      other) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ssa_names
    argTypes:
    - ir::SsaNames*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: raksha::analysis::common::ReachingOperationsSemantics::ReachingOperationsSemantics
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    linkageType: ''
    returnType: void
    signature: void ReachingOperationsSemantics(ir::SsaNames* ssa_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:82,1
    - Dst: AbstractState
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:83,1
    - Dst: Join
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:85,1
    - Dst: inputs
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:89,1
    - Dst: auto::AddOperation
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:90,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:90,1
    - Dst: std::vector<AbstractState>
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:92,1
    - Dst: NumberOfOutputs
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' operation'
    - ' input_states'
    argTypes:
    - ir::Operation
    - std::vector<AbstractState>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 93
    functionName: raksha::analysis::common::ReachingOperationsSemantics::ApplyOperationTransformer
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - std::vector<AbstractState>
    - AbstractState
    - NumberOfOutputs
    - auto::AddOperation
    - inputs
    - Join
    - raksha::common::utils::fold
    - raksha::ir::ValueToString
    linkageType: ''
    returnType: std::vector<AbstractState>
    signature: "std::vector<AbstractState> ApplyOperationTransformer(\n      const
      ir::Operation& operation,\n      const std::vector<AbstractState>& input_states)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AbstractState
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:97,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:98,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - ir::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: raksha::analysis::common::ReachingOperationsSemantics::GetInitialState
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrCat
    - AbstractState
    - raksha::ir::ValueToString
    linkageType: ''
    returnType: AbstractState
    signature: AbstractState GetInitialState(const ir::Value& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:134,1
    - Dst: ParseProgram
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:135,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:136,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:137,1
    - Dst: IrProgramParserResult::ssa_names::get
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:137,1
    - Dst: ReachingOperationsAnalysis::ComputeFixpoint
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:138,1
    - Dst: ReachingOperationsSemantics
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:141,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:144,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:144,1
    - Dst: ValueFixpointEq
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 146
    functionName: raksha::analysis::common::TEST_P
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - ReachingOperationsSemantics
    - UnorderedPointwise
    - IrProgramParserResult::ssa_names::get
    - ValueFixpointEq
    - ParseProgram
    - EXPECT_THAT
    - ReachingOperationsAnalysis::ComputeFixpoint
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModuleFixpointIteratorTest, ComputesFixpoint)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semantics_maker
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:40,1
    - Dst: AbstractSemantics::GetEntryNodes
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:43,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:44,1
    - Dst: AbstractSemantics::GetInitialState
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:45,1
    - Dst: absl::flat_hash_set::empty
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:48,1
    - Dst: absl::flat_hash_set::begin
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:50,1
    - Dst: absl::flat_hash_set::erase
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:51,1
    - Dst: absl::flat_hash_set::begin
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:51,1
    - Dst: NodeStateMap::find
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:54,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:55,1
    - Dst: NodeStateMap::end
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:55,1
    - Dst: AbstractSemantics::ApplyNodeTransformer
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:60,1
    - Dst: GetOutEdges
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:63,1
    - Dst: AbstractSemantics::ApplyEdgeTransformer
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:65,1
    - Dst: GetEdgeTarget
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:67,1
    - Dst: NodeStateMap::find
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:68,1
    - Dst: NodeStateMap::end
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:69,1
    - Dst: AbstractSemantics::GetInitialState
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:71,1
    - Dst: AbstractSemantics::CombineStates
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:75,1
    - Dst: AbstractSemantics::AreStatesEqual
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:77,1
    - Dst: NodeStateMap::insert_or_assign
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:79,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ' graph'
    - semantics_maker
    argTypes:
    - Graph
    - SemanticsMaker
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 86
    functionName: raksha::analysis::common::WorklistFixpointIterator::ComputeFixpoint
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h
    functionUses: 0
    functionsReached:
    - AbstractSemantics::GetInitialState
    - absl::flat_hash_set::empty
    - absl::flat_hash_set::erase
    - AbstractSemantics::AreStatesEqual
    - absl::flat_hash_set::insert
    - GetOutEdges
    - NodeStateMap::insert_or_assign
    - GetEdgeTarget
    - absl::flat_hash_set::begin
    - AbstractSemantics::ApplyNodeTransformer
    - AbstractSemantics::ApplyEdgeTransformer
    - NodeStateMap::end
    - semantics_maker
    - CHECK
    - NodeStateMap::find
    - AbstractSemantics::CombineStates
    - AbstractSemantics::GetEntryNodes
    linkageType: ''
    returnType: NodeStateMap
    signature: "NodeStateMap ComputeFixpoint(const Graph& graph,\n                               SemanticsMaker
      semantics_maker) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semantics_maker
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:40,1
    - Dst: AbstractSemantics::GetEntryNodes
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:43,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:44,1
    - Dst: AbstractSemantics::GetInitialState
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:45,1
    - Dst: absl::flat_hash_set::empty
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:48,1
    - Dst: absl::flat_hash_set::begin
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:50,1
    - Dst: absl::flat_hash_set::erase
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:51,1
    - Dst: absl::flat_hash_set::begin
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:51,1
    - Dst: NodeStateMap::find
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:54,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:55,1
    - Dst: NodeStateMap::end
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:55,1
    - Dst: AbstractSemantics::ApplyNodeTransformer
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:60,1
    - Dst: GetOutEdges
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:63,1
    - Dst: AbstractSemantics::ApplyEdgeTransformer
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:65,1
    - Dst: GetEdgeTarget
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:67,1
    - Dst: NodeStateMap::find
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:68,1
    - Dst: NodeStateMap::end
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:69,1
    - Dst: AbstractSemantics::GetInitialState
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:71,1
    - Dst: AbstractSemantics::CombineStates
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:75,1
    - Dst: AbstractSemantics::AreStatesEqual
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:77,1
    - Dst: NodeStateMap::insert_or_assign
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:79,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ' graph'
    - semantics_maker
    argTypes:
    - Graph
    - SemanticsMaker
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 86
    functionName: raksha::analysis::common::WorklistFixpointIterator::ComputeFixpoint
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h
    functionUses: 0
    functionsReached:
    - AbstractSemantics::GetInitialState
    - absl::flat_hash_set::empty
    - absl::flat_hash_set::erase
    - AbstractSemantics::AreStatesEqual
    - absl::flat_hash_set::insert
    - GetOutEdges
    - NodeStateMap::insert_or_assign
    - GetEdgeTarget
    - absl::flat_hash_set::begin
    - AbstractSemantics::ApplyNodeTransformer
    - AbstractSemantics::ApplyEdgeTransformer
    - NodeStateMap::end
    - semantics_maker
    - CHECK
    - NodeStateMap::find
    - AbstractSemantics::CombineStates
    - AbstractSemantics::GetEntryNodes
    linkageType: ''
    returnType: NodeStateMap
    signature: "NodeStateMap ComputeFixpoint(const Graph& graph,\n                               SemanticsMaker
      semantics_maker) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: '& graph() const'
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ModuleGraph
    signature: ModuleGraph & graph() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - NodeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: '& GetNode(NodeId id) const'
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: ModuleGraph::Node
    signature: ModuleGraph::Node & GetNode(NodeId id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:76,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:77,1
    - Dst: end
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - ModuleGraph::Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: raksha::analysis::common::ModuleGraphTest::GetNodeId
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - find
    - CHECK
    - end
    linkageType: ''
    returnType: NodeId
    signature: NodeId GetNodeId(ModuleGraph::Node node) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:114,1
    - Dst: graph
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:115,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:116,1
    - Dst: GetNodes
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:116,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:117,1
    - Dst: NodeEq
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:117,1
    - Dst: GetNodes
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:118,1
    - Dst: GetNodeId
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:119,1
    - Dst: expected_edges::find
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:120,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:121,1
    - Dst: expected_edges::end
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:121,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:125,1
    - Dst: GetOutEdges
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:125,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:126,1
    - Dst: EdgeEq
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:126,1
    - Dst: std::visit
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:129,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:132,1
    - Dst: GetUses
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:133,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:134,1
    - Dst: TargetIndexEq
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:134,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:137,1
    - Dst: GetResults
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:138,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:139,1
    - Dst: TargetIndexEq
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:139,1
    - Dst: GetOutEdges
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:143,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:145,1
    - Dst: GetEdgeSource
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:145,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:146,1
    - Dst: GetEdgeTarget
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 149
    functionName: raksha::analysis::common::TEST_P
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - UnorderedPointwise
    - TargetIndexEq
    - GetOutEdges
    - EdgeEq
    - expected_edges::find
    - NodeEq
    - expected_edges::end
    - std::visit
    - GetEdgeTarget
    - GetNodeId
    - GetUses
    - GetResults
    - EXPECT_THAT
    - graph
    - GetEdgeSource
    - GetNodes
    - ASSERT_NE
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModuleGraphTest, GraphIsConstructedProperly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: graph
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:152,1
    - Dst: GetNodes
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:153,1
    - Dst: GetOutEdges
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:154,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:156,1
    - Dst: GetEdgeSource
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:156,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:157,1
    - Dst: GetEdgeTarget
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: raksha::analysis::common::TEST_P
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - GetOutEdges
    - GetEdgeTarget
    - EXPECT_THAT
    - graph
    - GetEdgeSource
    - GetNodes
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModuleGraphTest, GetEdgeTargetAndGetEdgeSourceBehavesCorrectly)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::get_if<const ir::Operation*>
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:293,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:294,1
    - Dst: std::get_if<ir::Value>
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:295,1
    - Dst: ValueToString
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' node'
    - ' ssa_names'
    argTypes:
    - ModuleGraph::Node
    - ir::SsaNames
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 300
    functionName: raksha::analysis::common::GetPrettyPrintedNode
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - std::get_if<ir::Value>
    - ValueToString
    - std::get_if<const ir::Operation*>
    linkageType: ''
    returnType: std::string
    signature: "std::string GetPrettyPrintedNode(const ModuleGraph::Node& node,\n
      \                                ir::SsaNames& ssa_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Substitute
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:306,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:314,1
    - Dst: raksha::utils::ranges::keys
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:314,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:318,1
    - Dst: RE2::FullMatch
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:319,1
    - Dst: ParseProgram
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' nodes'
    argTypes:
    - absl::flat_hash_map<std::string, NodeId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 323
    functionName: raksha::analysis::common::BuildIRAndParse
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrAppend
    - raksha::utils::ranges::keys
    - absl::StrJoin
    - ParseProgram
    - absl::Substitute
    - RE2::FullMatch
    linkageType: ''
    returnType: IrProgramParserResult
    signature: "IrProgramParserResult BuildIRAndParse(\n    const absl::flat_hash_map<std::string,
      NodeId>& nodes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetNodes
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:332,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:333,1
    - Dst: find
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:334,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:335,1
    - Dst: end
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:335,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:337,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' graph'
    - ' nodes'
    - ' ssa_names'
    argTypes:
    - ModuleGraph
    - absl::flat_hash_map<std::string, NodeId>
    - ir::SsaNames
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 341
    functionName: raksha::analysis::common::BuildNodeToIdMap
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - find
    - absl::flat_hash_map::insert
    - raksha::analysis::common::GetPrettyPrintedNode
    - CHECK
    - end
    - GetNodes
    linkageType: ''
    returnType: absl::flat_hash_map<ModuleGraph::Node, NodeId>
    signature: "absl::flat_hash_map<ModuleGraph::Node, NodeId> BuildNodeToIdMap(\n
      \   const ModuleGraph& graph,\n    const absl::flat_hash_map<std::string, NodeId>&
      nodes,\n    ir::SsaNames& ssa_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:347,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' node_to_id'
    argTypes:
    - absl::flat_hash_map<ModuleGraph::Node, NodeId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 351
    functionName: raksha::analysis::common::BuildIdToNodeMap
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_map::insert
    - CHECK
    linkageType: ''
    returnType: absl::flat_hash_map<NodeId, ModuleGraph::Node>
    signature: "absl::flat_hash_map<NodeId, ModuleGraph::Node> BuildIdToNodeMap(\n
      \   const absl::flat_hash_map<ModuleGraph::Node, NodeId>& node_to_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BuildIRAndParse
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:354,1
    - Dst: GetParam
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:354,1
    - Dst: module::get
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:355,1
    - Dst: BuildNodeToIdMap
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:356,1
    - Dst: GetParam
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:356,1
    - Dst: BuildIdToNodeMap
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 358
    functionName: raksha::analysis::common::ModuleGraphTest::ModuleGraphTest
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - GetParam
    - BuildNodeToIdMap
    - BuildIRAndParse
    - BuildIdToNodeMap
    - module::get
    linkageType: ''
    returnType: void
    signature: void ModuleGraphTest::ModuleGraphTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: '& graph() const'
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ModuleGraph
    signature: ModuleGraph & graph() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - NodeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: '& GetNode(NodeId id) const'
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: ModuleGraph::Node
    signature: ModuleGraph::Node & GetNode(NodeId id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:76,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:77,1
    - Dst: end
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - ModuleGraph::Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: raksha::analysis::common::ModuleGraphTest::GetNodeId
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - find
    - CHECK
    - end
    linkageType: ''
    returnType: NodeId
    signature: NodeId GetNodeId(ModuleGraph::Node node) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:114,1
    - Dst: graph
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:115,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:116,1
    - Dst: GetNodes
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:116,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:117,1
    - Dst: NodeEq
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:117,1
    - Dst: GetNodes
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:118,1
    - Dst: GetNodeId
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:119,1
    - Dst: expected_edges::find
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:120,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:121,1
    - Dst: expected_edges::end
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:121,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:125,1
    - Dst: GetOutEdges
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:125,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:126,1
    - Dst: EdgeEq
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:126,1
    - Dst: std::visit
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:129,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:132,1
    - Dst: GetUses
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:133,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:134,1
    - Dst: TargetIndexEq
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:134,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:137,1
    - Dst: GetResults
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:138,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:139,1
    - Dst: TargetIndexEq
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:139,1
    - Dst: GetOutEdges
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:143,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:145,1
    - Dst: GetEdgeSource
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:145,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:146,1
    - Dst: GetEdgeTarget
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 149
    functionName: raksha::analysis::common::TEST_P
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - UnorderedPointwise
    - TargetIndexEq
    - GetOutEdges
    - EdgeEq
    - expected_edges::find
    - NodeEq
    - expected_edges::end
    - std::visit
    - GetEdgeTarget
    - GetNodeId
    - GetUses
    - GetResults
    - EXPECT_THAT
    - graph
    - GetEdgeSource
    - GetNodes
    - ASSERT_NE
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModuleGraphTest, GraphIsConstructedProperly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: graph
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:152,1
    - Dst: GetNodes
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:153,1
    - Dst: GetOutEdges
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:154,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:156,1
    - Dst: GetEdgeSource
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:156,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:157,1
    - Dst: GetEdgeTarget
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: raksha::analysis::common::TEST_P
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - GetOutEdges
    - GetEdgeTarget
    - EXPECT_THAT
    - graph
    - GetEdgeSource
    - GetNodes
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModuleGraphTest, GetEdgeTargetAndGetEdgeSourceBehavesCorrectly)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::get_if<const ir::Operation*>
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:293,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:294,1
    - Dst: std::get_if<ir::Value>
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:295,1
    - Dst: ValueToString
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' node'
    - ' ssa_names'
    argTypes:
    - ModuleGraph::Node
    - ir::SsaNames
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 300
    functionName: raksha::analysis::common::GetPrettyPrintedNode
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 1
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - std::get_if<ir::Value>
    - ValueToString
    - std::get_if<const ir::Operation*>
    linkageType: ''
    returnType: std::string
    signature: "std::string GetPrettyPrintedNode(const ModuleGraph::Node& node,\n
      \                                ir::SsaNames& ssa_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Substitute
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:306,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:314,1
    - Dst: raksha::utils::ranges::keys
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:314,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:318,1
    - Dst: RE2::FullMatch
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:319,1
    - Dst: ParseProgram
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' nodes'
    argTypes:
    - absl::flat_hash_map<std::string, NodeId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 323
    functionName: raksha::analysis::common::BuildIRAndParse
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrAppend
    - raksha::utils::ranges::keys
    - absl::StrJoin
    - ParseProgram
    - absl::Substitute
    - RE2::FullMatch
    linkageType: ''
    returnType: IrProgramParserResult
    signature: "IrProgramParserResult BuildIRAndParse(\n    const absl::flat_hash_map<std::string,
      NodeId>& nodes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetNodes
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:332,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:333,1
    - Dst: find
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:334,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:335,1
    - Dst: end
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:335,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:337,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' graph'
    - ' nodes'
    - ' ssa_names'
    argTypes:
    - ModuleGraph
    - absl::flat_hash_map<std::string, NodeId>
    - ir::SsaNames
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 341
    functionName: raksha::analysis::common::BuildNodeToIdMap
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - find
    - absl::flat_hash_map::insert
    - raksha::analysis::common::GetPrettyPrintedNode
    - CHECK
    - end
    - GetNodes
    linkageType: ''
    returnType: absl::flat_hash_map<ModuleGraph::Node, NodeId>
    signature: "absl::flat_hash_map<ModuleGraph::Node, NodeId> BuildNodeToIdMap(\n
      \   const ModuleGraph& graph,\n    const absl::flat_hash_map<std::string, NodeId>&
      nodes,\n    ir::SsaNames& ssa_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:347,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' node_to_id'
    argTypes:
    - absl::flat_hash_map<ModuleGraph::Node, NodeId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 351
    functionName: raksha::analysis::common::BuildIdToNodeMap
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_map::insert
    - CHECK
    linkageType: ''
    returnType: absl::flat_hash_map<NodeId, ModuleGraph::Node>
    signature: "absl::flat_hash_map<NodeId, ModuleGraph::Node> BuildIdToNodeMap(\n
      \   const absl::flat_hash_map<ModuleGraph::Node, NodeId>& node_to_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BuildIRAndParse
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:354,1
    - Dst: GetParam
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:354,1
    - Dst: module::get
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:355,1
    - Dst: BuildNodeToIdMap
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:356,1
    - Dst: GetParam
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:356,1
    - Dst: BuildIdToNodeMap
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 358
    functionName: raksha::analysis::common::ModuleGraphTest::ModuleGraphTest
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - GetParam
    - BuildNodeToIdMap
    - BuildIRAndParse
    - BuildIdToNodeMap
    - module::get
    linkageType: ''
    returnType: void
    signature: void ModuleGraphTest::ModuleGraphTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: '& graph() const'
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ModuleGraph
    signature: ModuleGraph & graph() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - NodeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: '& GetNode(NodeId id) const'
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: ModuleGraph::Node
    signature: ModuleGraph::Node & GetNode(NodeId id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:76,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:77,1
    - Dst: end
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - ModuleGraph::Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: raksha::analysis::common::ModuleGraphTest::GetNodeId
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - find
    - CHECK
    - end
    linkageType: ''
    returnType: NodeId
    signature: NodeId GetNodeId(ModuleGraph::Node node) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:114,1
    - Dst: graph
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:115,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:116,1
    - Dst: GetNodes
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:116,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:117,1
    - Dst: NodeEq
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:117,1
    - Dst: GetNodes
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:118,1
    - Dst: GetNodeId
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:119,1
    - Dst: expected_edges::find
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:120,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:121,1
    - Dst: expected_edges::end
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:121,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:125,1
    - Dst: GetOutEdges
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:125,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:126,1
    - Dst: EdgeEq
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:126,1
    - Dst: std::visit
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:129,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:132,1
    - Dst: GetUses
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:133,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:134,1
    - Dst: TargetIndexEq
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:134,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:137,1
    - Dst: GetResults
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:138,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:139,1
    - Dst: TargetIndexEq
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:139,1
    - Dst: GetOutEdges
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:143,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:145,1
    - Dst: GetEdgeSource
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:145,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:146,1
    - Dst: GetEdgeTarget
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 149
    functionName: raksha::analysis::common::TEST_P
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - UnorderedPointwise
    - TargetIndexEq
    - GetOutEdges
    - EdgeEq
    - expected_edges::find
    - NodeEq
    - expected_edges::end
    - std::visit
    - GetEdgeTarget
    - GetNodeId
    - GetUses
    - GetResults
    - EXPECT_THAT
    - graph
    - GetEdgeSource
    - GetNodes
    - ASSERT_NE
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModuleGraphTest, GraphIsConstructedProperly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: graph
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:152,1
    - Dst: GetNodes
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:153,1
    - Dst: GetOutEdges
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:154,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:156,1
    - Dst: GetEdgeSource
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:156,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:157,1
    - Dst: GetEdgeTarget
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: raksha::analysis::common::TEST_P
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - GetOutEdges
    - GetEdgeTarget
    - EXPECT_THAT
    - graph
    - GetEdgeSource
    - GetNodes
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModuleGraphTest, GetEdgeTargetAndGetEdgeSourceBehavesCorrectly)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::get_if<const ir::Operation*>
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:293,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:294,1
    - Dst: std::get_if<ir::Value>
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:295,1
    - Dst: ValueToString
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' node'
    - ' ssa_names'
    argTypes:
    - ModuleGraph::Node
    - ir::SsaNames
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 300
    functionName: raksha::analysis::common::GetPrettyPrintedNode
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 2
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - std::get_if<ir::Value>
    - ValueToString
    - std::get_if<const ir::Operation*>
    linkageType: ''
    returnType: std::string
    signature: "std::string GetPrettyPrintedNode(const ModuleGraph::Node& node,\n
      \                                ir::SsaNames& ssa_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Substitute
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:306,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:314,1
    - Dst: raksha::utils::ranges::keys
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:314,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:318,1
    - Dst: RE2::FullMatch
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:319,1
    - Dst: ParseProgram
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' nodes'
    argTypes:
    - absl::flat_hash_map<std::string, NodeId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 323
    functionName: raksha::analysis::common::BuildIRAndParse
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrAppend
    - raksha::utils::ranges::keys
    - absl::StrJoin
    - ParseProgram
    - absl::Substitute
    - RE2::FullMatch
    linkageType: ''
    returnType: IrProgramParserResult
    signature: "IrProgramParserResult BuildIRAndParse(\n    const absl::flat_hash_map<std::string,
      NodeId>& nodes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetNodes
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:332,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:333,1
    - Dst: find
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:334,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:335,1
    - Dst: end
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:335,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:337,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' graph'
    - ' nodes'
    - ' ssa_names'
    argTypes:
    - ModuleGraph
    - absl::flat_hash_map<std::string, NodeId>
    - ir::SsaNames
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 341
    functionName: raksha::analysis::common::BuildNodeToIdMap
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - find
    - absl::flat_hash_map::insert
    - raksha::analysis::common::GetPrettyPrintedNode
    - CHECK
    - end
    - GetNodes
    linkageType: ''
    returnType: absl::flat_hash_map<ModuleGraph::Node, NodeId>
    signature: "absl::flat_hash_map<ModuleGraph::Node, NodeId> BuildNodeToIdMap(\n
      \   const ModuleGraph& graph,\n    const absl::flat_hash_map<std::string, NodeId>&
      nodes,\n    ir::SsaNames& ssa_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:347,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' node_to_id'
    argTypes:
    - absl::flat_hash_map<ModuleGraph::Node, NodeId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 351
    functionName: raksha::analysis::common::BuildIdToNodeMap
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_map::insert
    - CHECK
    linkageType: ''
    returnType: absl::flat_hash_map<NodeId, ModuleGraph::Node>
    signature: "absl::flat_hash_map<NodeId, ModuleGraph::Node> BuildIdToNodeMap(\n
      \   const absl::flat_hash_map<ModuleGraph::Node, NodeId>& node_to_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BuildIRAndParse
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:354,1
    - Dst: GetParam
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:354,1
    - Dst: module::get
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:355,1
    - Dst: BuildNodeToIdMap
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:356,1
    - Dst: GetParam
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:356,1
    - Dst: BuildIdToNodeMap
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 358
    functionName: raksha::analysis::common::ModuleGraphTest::ModuleGraphTest
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - GetParam
    - BuildNodeToIdMap
    - BuildIRAndParse
    - BuildIdToNodeMap
    - module::get
    linkageType: ''
    returnType: void
    signature: void ModuleGraphTest::ModuleGraphTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: '& graph() const'
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ModuleGraph
    signature: ModuleGraph & graph() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - NodeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: '& GetNode(NodeId id) const'
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: ModuleGraph::Node
    signature: ModuleGraph::Node & GetNode(NodeId id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:76,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:77,1
    - Dst: end
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - ModuleGraph::Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: raksha::analysis::common::ModuleGraphTest::GetNodeId
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - find
    - CHECK
    - end
    linkageType: ''
    returnType: NodeId
    signature: NodeId GetNodeId(ModuleGraph::Node node) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:114,1
    - Dst: graph
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:115,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:116,1
    - Dst: GetNodes
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:116,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:117,1
    - Dst: NodeEq
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:117,1
    - Dst: GetNodes
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:118,1
    - Dst: GetNodeId
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:119,1
    - Dst: expected_edges::find
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:120,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:121,1
    - Dst: expected_edges::end
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:121,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:125,1
    - Dst: GetOutEdges
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:125,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:126,1
    - Dst: EdgeEq
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:126,1
    - Dst: std::visit
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:129,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:132,1
    - Dst: GetUses
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:133,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:134,1
    - Dst: TargetIndexEq
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:134,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:137,1
    - Dst: GetResults
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:138,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:139,1
    - Dst: TargetIndexEq
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:139,1
    - Dst: GetOutEdges
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:143,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:145,1
    - Dst: GetEdgeSource
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:145,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:146,1
    - Dst: GetEdgeTarget
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 149
    functionName: raksha::analysis::common::TEST_P
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - UnorderedPointwise
    - TargetIndexEq
    - GetOutEdges
    - EdgeEq
    - expected_edges::find
    - NodeEq
    - expected_edges::end
    - std::visit
    - GetEdgeTarget
    - GetNodeId
    - GetUses
    - GetResults
    - EXPECT_THAT
    - graph
    - GetEdgeSource
    - GetNodes
    - ASSERT_NE
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModuleGraphTest, GraphIsConstructedProperly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: graph
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:152,1
    - Dst: GetNodes
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:153,1
    - Dst: GetOutEdges
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:154,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:156,1
    - Dst: GetEdgeSource
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:156,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:157,1
    - Dst: GetEdgeTarget
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: raksha::analysis::common::TEST_P
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - GetOutEdges
    - GetEdgeTarget
    - EXPECT_THAT
    - graph
    - GetEdgeSource
    - GetNodes
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModuleGraphTest, GetEdgeTargetAndGetEdgeSourceBehavesCorrectly)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::get_if<const ir::Operation*>
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:293,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:294,1
    - Dst: std::get_if<ir::Value>
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:295,1
    - Dst: ValueToString
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' node'
    - ' ssa_names'
    argTypes:
    - ModuleGraph::Node
    - ir::SsaNames
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 300
    functionName: raksha::analysis::common::GetPrettyPrintedNode
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 3
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - std::get_if<ir::Value>
    - ValueToString
    - std::get_if<const ir::Operation*>
    linkageType: ''
    returnType: std::string
    signature: "std::string GetPrettyPrintedNode(const ModuleGraph::Node& node,\n
      \                                ir::SsaNames& ssa_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Substitute
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:306,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:314,1
    - Dst: raksha::utils::ranges::keys
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:314,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:318,1
    - Dst: RE2::FullMatch
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:319,1
    - Dst: ParseProgram
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' nodes'
    argTypes:
    - absl::flat_hash_map<std::string, NodeId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 323
    functionName: raksha::analysis::common::BuildIRAndParse
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrAppend
    - raksha::utils::ranges::keys
    - absl::StrJoin
    - ParseProgram
    - absl::Substitute
    - RE2::FullMatch
    linkageType: ''
    returnType: IrProgramParserResult
    signature: "IrProgramParserResult BuildIRAndParse(\n    const absl::flat_hash_map<std::string,
      NodeId>& nodes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetNodes
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:332,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:333,1
    - Dst: find
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:334,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:335,1
    - Dst: end
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:335,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:337,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' graph'
    - ' nodes'
    - ' ssa_names'
    argTypes:
    - ModuleGraph
    - absl::flat_hash_map<std::string, NodeId>
    - ir::SsaNames
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 341
    functionName: raksha::analysis::common::BuildNodeToIdMap
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - find
    - absl::flat_hash_map::insert
    - raksha::analysis::common::GetPrettyPrintedNode
    - CHECK
    - end
    - GetNodes
    linkageType: ''
    returnType: absl::flat_hash_map<ModuleGraph::Node, NodeId>
    signature: "absl::flat_hash_map<ModuleGraph::Node, NodeId> BuildNodeToIdMap(\n
      \   const ModuleGraph& graph,\n    const absl::flat_hash_map<std::string, NodeId>&
      nodes,\n    ir::SsaNames& ssa_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:347,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' node_to_id'
    argTypes:
    - absl::flat_hash_map<ModuleGraph::Node, NodeId>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 351
    functionName: raksha::analysis::common::BuildIdToNodeMap
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_map::insert
    - CHECK
    linkageType: ''
    returnType: absl::flat_hash_map<NodeId, ModuleGraph::Node>
    signature: "absl::flat_hash_map<NodeId, ModuleGraph::Node> BuildIdToNodeMap(\n
      \   const absl::flat_hash_map<ModuleGraph::Node, NodeId>& node_to_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BuildIRAndParse
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:354,1
    - Dst: GetParam
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:354,1
    - Dst: module::get
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:355,1
    - Dst: BuildNodeToIdMap
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:356,1
    - Dst: GetParam
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:356,1
    - Dst: BuildIdToNodeMap
      Src: /src/raksha/src/analysis/common/module_graph_test.cc:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 358
    functionName: raksha::analysis::common::ModuleGraphTest::ModuleGraphTest
    functionSourceFile: /src/raksha/src/analysis/common/module_graph_test.cc
    functionUses: 0
    functionsReached:
    - GetParam
    - BuildNodeToIdMap
    - BuildIRAndParse
    - BuildIdToNodeMap
    - module::get
    linkageType: ''
    returnType: void
    signature: void ModuleGraphTest::ModuleGraphTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - nodes
    argTypes:
    - AdjacencyList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: raksha::analysis::common::IntGraph::IntGraph
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void IntGraph(AdjacencyList nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' edge'
    argTypes:
    - Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '& GetEdgeSource(const Edge& edge) const'
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Node
    signature: Node & GetEdgeSource(const Edge& edge) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' edge'
    argTypes:
    - Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: '& GetEdgeTarget(const Edge& edge) const'
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Node
    signature: Node & GetEdgeTarget(const Edge& edge) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:45,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:46,1
    - Dst: end
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:46,1
    - Dst: EdgeSet::insert
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:48,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: raksha::analysis::common::IntGraph::GetOutEdges
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - find
    - std::make_pair
    - EdgeSet::insert
    - CHECK
    - end
    linkageType: ''
    returnType: EdgeSet
    signature: EdgeSet GetOutEdges(const Node& node) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' graph'
    argTypes:
    - IntGraph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::ReachingNodesAndEdgesSemantics
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReachingNodesAndEdgesSemantics(const IntGraph& graph)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::GetEntryNodes
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IntGraph::NodeSet
    signature: IntGraph::NodeSet GetEntryNodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AbstractState::insert
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' node'
    - ' in_state'
    argTypes:
    - IntGraph::Node
    - AbstractState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::ApplyNodeTransformer
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - AbstractState::insert
    linkageType: ''
    returnType: AbstractState
    signature: "AbstractState ApplyNodeTransformer(const IntGraph::Node& node,\n                                     const
      AbstractState& in_state) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AbstractState::insert
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:77,1
    - Dst: GetEdgeSource
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:77,1
    - Dst: GetEdgeTarget
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' edge'
    - ' in_state'
    argTypes:
    - IntGraph::Edge
    - AbstractState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::ApplyEdgeTransformer
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - AbstractState::insert
    - GetEdgeSource
    - GetEdgeTarget
    linkageType: ''
    returnType: AbstractState
    signature: "AbstractState ApplyEdgeTransformer(const IntGraph::Edge& edge,\n                                     const
      AbstractState& in_state) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - AbstractState
    - AbstractState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::AreStatesEqual
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool AreStatesEqual(const AbstractState& lhs, const AbstractState&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::c_merge
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:89,1
    - Dst: std::inserter
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:89,1
    - Dst: IntGraph::NodeSet::begin
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - AbstractState
    - AbstractState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::CombineStates
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - std::inserter
    - absl::c_merge
    - IntGraph::NodeSet::begin
    linkageType: ''
    returnType: AbstractState
    signature: "AbstractState CombineStates(const AbstractState& lhs,\n                              const
      AbstractState& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - IntGraph::Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::GetInitialState
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AbstractState
    signature: AbstractState GetInitialState(const IntGraph::Node& node) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReachingNodesAndEdgesAnalysis::ComputeFixpoint
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:117,1
    - Dst: ReachingNodesAndEdgesSemantics
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:118,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:123,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:125,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:126,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:126,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:127,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:127,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:128,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:128,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:128,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:129,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:130,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:130,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:132,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:133,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:135,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:136,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:138,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 141
    functionName: raksha::analysis::common::TEST
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - ReachingNodesAndEdgesSemantics
    - IntGraph::NodeSet
    - Pair
    - ReachingNodesAndEdgesAnalysis::ComputeFixpoint
    - EXPECT_THAT
    - UnorderedElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(WorklistFixpointIteratorTest, ComputesFixpoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - nodes
    argTypes:
    - AdjacencyList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: raksha::analysis::common::IntGraph::IntGraph
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void IntGraph(AdjacencyList nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' edge'
    argTypes:
    - Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '& GetEdgeSource(const Edge& edge) const'
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Node
    signature: Node & GetEdgeSource(const Edge& edge) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' edge'
    argTypes:
    - Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: '& GetEdgeTarget(const Edge& edge) const'
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Node
    signature: Node & GetEdgeTarget(const Edge& edge) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:45,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:46,1
    - Dst: end
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:46,1
    - Dst: EdgeSet::insert
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:48,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: raksha::analysis::common::IntGraph::GetOutEdges
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - find
    - std::make_pair
    - EdgeSet::insert
    - CHECK
    - end
    linkageType: ''
    returnType: EdgeSet
    signature: EdgeSet GetOutEdges(const Node& node) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' graph'
    argTypes:
    - IntGraph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::ReachingNodesAndEdgesSemantics
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReachingNodesAndEdgesSemantics(const IntGraph& graph)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::GetEntryNodes
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IntGraph::NodeSet
    signature: IntGraph::NodeSet GetEntryNodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AbstractState::insert
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' node'
    - ' in_state'
    argTypes:
    - IntGraph::Node
    - AbstractState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::ApplyNodeTransformer
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - AbstractState::insert
    linkageType: ''
    returnType: AbstractState
    signature: "AbstractState ApplyNodeTransformer(const IntGraph::Node& node,\n                                     const
      AbstractState& in_state) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AbstractState::insert
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:77,1
    - Dst: GetEdgeSource
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:77,1
    - Dst: GetEdgeTarget
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' edge'
    - ' in_state'
    argTypes:
    - IntGraph::Edge
    - AbstractState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::ApplyEdgeTransformer
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - AbstractState::insert
    - GetEdgeSource
    - GetEdgeTarget
    linkageType: ''
    returnType: AbstractState
    signature: "AbstractState ApplyEdgeTransformer(const IntGraph::Edge& edge,\n                                     const
      AbstractState& in_state) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - AbstractState
    - AbstractState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::AreStatesEqual
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool AreStatesEqual(const AbstractState& lhs, const AbstractState&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::c_merge
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:89,1
    - Dst: std::inserter
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:89,1
    - Dst: IntGraph::NodeSet::begin
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - AbstractState
    - AbstractState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::CombineStates
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - std::inserter
    - absl::c_merge
    - IntGraph::NodeSet::begin
    linkageType: ''
    returnType: AbstractState
    signature: "AbstractState CombineStates(const AbstractState& lhs,\n                              const
      AbstractState& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - IntGraph::Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::GetInitialState
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AbstractState
    signature: AbstractState GetInitialState(const IntGraph::Node& node) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReachingNodesAndEdgesAnalysis::ComputeFixpoint
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:117,1
    - Dst: ReachingNodesAndEdgesSemantics
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:118,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:123,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:125,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:126,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:126,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:127,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:127,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:128,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:128,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:128,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:129,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:130,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:130,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:132,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:133,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:135,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:136,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:138,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 141
    functionName: raksha::analysis::common::TEST
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - ReachingNodesAndEdgesSemantics
    - IntGraph::NodeSet
    - Pair
    - ReachingNodesAndEdgesAnalysis::ComputeFixpoint
    - EXPECT_THAT
    - UnorderedElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(WorklistFixpointIteratorTest, ComputesFixpoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - nodes
    argTypes:
    - AdjacencyList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: raksha::analysis::common::IntGraph::IntGraph
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void IntGraph(AdjacencyList nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' edge'
    argTypes:
    - Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '& GetEdgeSource(const Edge& edge) const'
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Node
    signature: Node & GetEdgeSource(const Edge& edge) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' edge'
    argTypes:
    - Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: '& GetEdgeTarget(const Edge& edge) const'
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Node
    signature: Node & GetEdgeTarget(const Edge& edge) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:45,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:46,1
    - Dst: end
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:46,1
    - Dst: EdgeSet::insert
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:48,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: raksha::analysis::common::IntGraph::GetOutEdges
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - find
    - std::make_pair
    - EdgeSet::insert
    - CHECK
    - end
    linkageType: ''
    returnType: EdgeSet
    signature: EdgeSet GetOutEdges(const Node& node) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' graph'
    argTypes:
    - IntGraph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::ReachingNodesAndEdgesSemantics
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReachingNodesAndEdgesSemantics(const IntGraph& graph)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::GetEntryNodes
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IntGraph::NodeSet
    signature: IntGraph::NodeSet GetEntryNodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AbstractState::insert
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' node'
    - ' in_state'
    argTypes:
    - IntGraph::Node
    - AbstractState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::ApplyNodeTransformer
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - AbstractState::insert
    linkageType: ''
    returnType: AbstractState
    signature: "AbstractState ApplyNodeTransformer(const IntGraph::Node& node,\n                                     const
      AbstractState& in_state) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AbstractState::insert
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:77,1
    - Dst: GetEdgeSource
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:77,1
    - Dst: GetEdgeTarget
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' edge'
    - ' in_state'
    argTypes:
    - IntGraph::Edge
    - AbstractState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::ApplyEdgeTransformer
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - AbstractState::insert
    - GetEdgeSource
    - GetEdgeTarget
    linkageType: ''
    returnType: AbstractState
    signature: "AbstractState ApplyEdgeTransformer(const IntGraph::Edge& edge,\n                                     const
      AbstractState& in_state) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - AbstractState
    - AbstractState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::AreStatesEqual
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool AreStatesEqual(const AbstractState& lhs, const AbstractState&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::c_merge
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:89,1
    - Dst: std::inserter
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:89,1
    - Dst: IntGraph::NodeSet::begin
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - AbstractState
    - AbstractState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::CombineStates
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - std::inserter
    - absl::c_merge
    - IntGraph::NodeSet::begin
    linkageType: ''
    returnType: AbstractState
    signature: "AbstractState CombineStates(const AbstractState& lhs,\n                              const
      AbstractState& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - IntGraph::Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::GetInitialState
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AbstractState
    signature: AbstractState GetInitialState(const IntGraph::Node& node) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReachingNodesAndEdgesAnalysis::ComputeFixpoint
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:117,1
    - Dst: ReachingNodesAndEdgesSemantics
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:118,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:123,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:125,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:126,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:126,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:127,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:127,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:128,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:128,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:128,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:129,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:130,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:130,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:132,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:133,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:135,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:136,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:138,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 141
    functionName: raksha::analysis::common::TEST
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - ReachingNodesAndEdgesSemantics
    - IntGraph::NodeSet
    - Pair
    - ReachingNodesAndEdgesAnalysis::ComputeFixpoint
    - EXPECT_THAT
    - UnorderedElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(WorklistFixpointIteratorTest, ComputesFixpoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - nodes
    argTypes:
    - AdjacencyList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: raksha::analysis::common::IntGraph::IntGraph
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void IntGraph(AdjacencyList nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' edge'
    argTypes:
    - Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '& GetEdgeSource(const Edge& edge) const'
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Node
    signature: Node & GetEdgeSource(const Edge& edge) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' edge'
    argTypes:
    - Edge
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: '& GetEdgeTarget(const Edge& edge) const'
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Node
    signature: Node & GetEdgeTarget(const Edge& edge) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:45,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:46,1
    - Dst: end
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:46,1
    - Dst: EdgeSet::insert
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:48,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: raksha::analysis::common::IntGraph::GetOutEdges
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - find
    - std::make_pair
    - EdgeSet::insert
    - CHECK
    - end
    linkageType: ''
    returnType: EdgeSet
    signature: EdgeSet GetOutEdges(const Node& node) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' graph'
    argTypes:
    - IntGraph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::ReachingNodesAndEdgesSemantics
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReachingNodesAndEdgesSemantics(const IntGraph& graph)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::GetEntryNodes
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IntGraph::NodeSet
    signature: IntGraph::NodeSet GetEntryNodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AbstractState::insert
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' node'
    - ' in_state'
    argTypes:
    - IntGraph::Node
    - AbstractState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::ApplyNodeTransformer
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - AbstractState::insert
    linkageType: ''
    returnType: AbstractState
    signature: "AbstractState ApplyNodeTransformer(const IntGraph::Node& node,\n                                     const
      AbstractState& in_state) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AbstractState::insert
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:77,1
    - Dst: GetEdgeSource
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:77,1
    - Dst: GetEdgeTarget
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' edge'
    - ' in_state'
    argTypes:
    - IntGraph::Edge
    - AbstractState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::ApplyEdgeTransformer
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - AbstractState::insert
    - GetEdgeSource
    - GetEdgeTarget
    linkageType: ''
    returnType: AbstractState
    signature: "AbstractState ApplyEdgeTransformer(const IntGraph::Edge& edge,\n                                     const
      AbstractState& in_state) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - AbstractState
    - AbstractState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::AreStatesEqual
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool AreStatesEqual(const AbstractState& lhs, const AbstractState&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::c_merge
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:89,1
    - Dst: std::inserter
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:89,1
    - Dst: IntGraph::NodeSet::begin
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - AbstractState
    - AbstractState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::CombineStates
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - std::inserter
    - absl::c_merge
    - IntGraph::NodeSet::begin
    linkageType: ''
    returnType: AbstractState
    signature: "AbstractState CombineStates(const AbstractState& lhs,\n                              const
      AbstractState& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' node'
    argTypes:
    - IntGraph::Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: raksha::analysis::common::ReachingNodesAndEdgesSemantics::GetInitialState
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AbstractState
    signature: AbstractState GetInitialState(const IntGraph::Node& node) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReachingNodesAndEdgesAnalysis::ComputeFixpoint
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:117,1
    - Dst: ReachingNodesAndEdgesSemantics
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:118,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:123,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:125,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:126,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:126,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:127,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:127,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:128,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:128,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:128,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:129,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:130,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:130,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:132,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:133,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:135,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:136,1
    - Dst: Pair
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:138,1
    - Dst: IntGraph::NodeSet
      Src: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 141
    functionName: raksha::analysis::common::TEST
    functionSourceFile: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
    functionUses: 0
    functionsReached:
    - ReachingNodesAndEdgesSemantics
    - IntGraph::NodeSet
    - Pair
    - ReachingNodesAndEdgesAnalysis::ComputeFixpoint
    - EXPECT_THAT
    - UnorderedElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(WorklistFixpointIteratorTest, ComputesFixpoint)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: semantics_maker
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:43,1
    - Dst: ModuleGraph::GetNodes
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:49,1
    - Dst: std::visit
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:50,1
    - Dst: If
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:56,1
    - Dst: ValueStateMap::insert
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:59,1
    - Dst: AbstractSemantics::GetInitialState
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:60,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:61,1
    - Dst: ModuleGraph::GetUses
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:65,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:66,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:72,1
    - Dst: inputs
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:73,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:73,1
    - Dst: ValueStateMap::find
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:79,1
    - Dst: ValueStateMap::end
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:80,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:81,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:82,1
    - Dst: absl::flat_hash_set::empty
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:86,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:88,1
    - Dst: absl::flat_hash_set::begin
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:88,1
    - Dst: absl::flat_hash_set::erase
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:89,1
    - Dst: absl::flat_hash_set::begin
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:89,1
    - Dst: utils::MapIter<AbstractState>
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:93,1
    - Dst: inputs
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:94,1
    - Dst: get_current_state
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:95,1
    - Dst: AbstractSemantics::ApplyOperationTransformer
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:100,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:101,1
    - Dst: std::vector::size
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:101,1
    - Dst: NumberOfOutputs
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:101,1
    - Dst: ModuleGraph::GetResults
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:105,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:106,1
    - Dst: std::vector::size
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:106,1
    - Dst: get_current_state
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:111,1
    - Dst: Join
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:113,1
    - Dst: IsEquivalentTo
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:116,1
    - Dst: ValueStateMap::insert_or_assign
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:117,1
    - Dst: ModuleGraph::GetUses
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:119,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:120,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - ' module'
    - semantics_maker
    argTypes:
    - ir::Module
    - SemanticsMaker
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 126
    functionName: raksha::analysis::common::ModuleFixpointIterator::ComputeFixpoint
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator.h
    functionUses: 0
    functionsReached:
    - NumberOfOutputs
    - inputs
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    - ValueStateMap::end
    - ModuleGraph::GetNodes
    - IsEquivalentTo
    - AbstractSemantics::GetInitialState
    - utils::MapIter<AbstractState>
    - absl::flat_hash_set::insert
    - ModuleGraph::GetUses
    - Join
    - semantics_maker
    - ValueStateMap::insert_or_assign
    - AbstractSemantics::ApplyOperationTransformer
    - ABSL_DIE_IF_NULL
    - absl::flat_hash_set::empty
    - ValueStateMap::insert
    - std::visit
    - ValueStateMap::find
    - std::vector::size
    - absl::flat_hash_set::erase
    - std::make_pair
    - If
    - absl::flat_hash_set::begin
    - get_current_state
    - CHECK
    - ModuleGraph::GetResults
    linkageType: ''
    returnType: ValueStateMap
    signature: "ValueStateMap ComputeFixpoint(const ir::Module& module,\n                                SemanticsMaker
      semantics_maker) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: semantics_maker
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:43,1
    - Dst: ModuleGraph::GetNodes
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:49,1
    - Dst: std::visit
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:50,1
    - Dst: If
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:56,1
    - Dst: ValueStateMap::insert
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:59,1
    - Dst: AbstractSemantics::GetInitialState
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:60,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:61,1
    - Dst: ModuleGraph::GetUses
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:65,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:66,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:72,1
    - Dst: inputs
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:73,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:73,1
    - Dst: ValueStateMap::find
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:79,1
    - Dst: ValueStateMap::end
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:80,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:81,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::Bottom
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:82,1
    - Dst: absl::flat_hash_set::empty
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:86,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:88,1
    - Dst: absl::flat_hash_set::begin
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:88,1
    - Dst: absl::flat_hash_set::erase
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:89,1
    - Dst: absl::flat_hash_set::begin
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:89,1
    - Dst: utils::MapIter<AbstractState>
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:93,1
    - Dst: inputs
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:94,1
    - Dst: get_current_state
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:95,1
    - Dst: AbstractSemantics::ApplyOperationTransformer
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:100,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:101,1
    - Dst: std::vector::size
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:101,1
    - Dst: NumberOfOutputs
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:101,1
    - Dst: ModuleGraph::GetResults
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:105,1
    - Dst: CHECK
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:106,1
    - Dst: std::vector::size
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:106,1
    - Dst: get_current_state
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:111,1
    - Dst: Join
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:113,1
    - Dst: IsEquivalentTo
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:116,1
    - Dst: ValueStateMap::insert_or_assign
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:117,1
    - Dst: ModuleGraph::GetUses
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:119,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/raksha/src/analysis/common/module_fixpoint_iterator.h:120,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - ' module'
    - semantics_maker
    argTypes:
    - ir::Module
    - SemanticsMaker
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 126
    functionName: raksha::analysis::common::ModuleFixpointIterator::ComputeFixpoint
    functionSourceFile: /src/raksha/src/analysis/common/module_fixpoint_iterator.h
    functionUses: 0
    functionsReached:
    - NumberOfOutputs
    - inputs
    - raksha::analysis::taint::AbstractIfcTags::Bottom
    - ValueStateMap::end
    - ModuleGraph::GetNodes
    - IsEquivalentTo
    - AbstractSemantics::GetInitialState
    - utils::MapIter<AbstractState>
    - absl::flat_hash_set::insert
    - ModuleGraph::GetUses
    - Join
    - semantics_maker
    - ValueStateMap::insert_or_assign
    - AbstractSemantics::ApplyOperationTransformer
    - ABSL_DIE_IF_NULL
    - absl::flat_hash_set::empty
    - ValueStateMap::insert
    - std::visit
    - ValueStateMap::find
    - std::vector::size
    - absl::flat_hash_set::erase
    - std::make_pair
    - If
    - absl::flat_hash_set::begin
    - get_current_state
    - CHECK
    - ModuleGraph::GetResults
    linkageType: ''
    returnType: ValueStateMap
    signature: "ValueStateMap ComputeFixpoint(const ir::Module& module,\n                                SemanticsMaker
      semantics_maker) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Accept
      Src: /src/raksha/src/analysis/common/module_graph.cc:32,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/common/module_graph.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - ir::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: raksha::analysis::common::AdjacencyListComputingVisitor::ComputeAdjacencyList
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.cc
    functionUses: 0
    functionsReached:
    - Accept
    - std::move
    linkageType: ''
    returnType: ModuleGraph::AdjacencyList
    signature: "ModuleGraph::AdjacencyList ComputeAdjacencyList(\n      const ir::Module&
      module)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:39,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph.cc:39,1
    - Dst: inputs
      Src: /src/raksha/src/analysis/common/module_graph.cc:44,1
    - Dst: insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:46,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph.cc:46,1
    - Dst: second::insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:47,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/common/module_graph.cc:48,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph.cc:48,1
    - Dst: NumberOfOutputs
      Src: /src/raksha/src/analysis/common/module_graph.cc:53,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph.cc:57,1
    - Dst: GetOutputValue
      Src: /src/raksha/src/analysis/common/module_graph.cc:57,1
    - Dst: insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:58,1
    - Dst: insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:61,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph.cc:61,1
    - Dst: second::insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:62,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/common/module_graph.cc:62,1
    - Dst: Unit
      Src: /src/raksha/src/analysis/common/module_graph.cc:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - ir::Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 65
    functionName: raksha::analysis::common::AdjacencyListComputingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.cc
    functionUses: 0
    functionsReached:
    - Unit
    - std::make_pair
    - NumberOfOutputs
    - second::insert
    - inputs
    - raksha::analysis::common::GetPrettyPrintedNode
    - GetOutputValue
    - insert
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const ir::Operation& operation) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Accept
      Src: /src/raksha/src/analysis/common/module_graph.cc:32,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/common/module_graph.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - ir::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: raksha::analysis::common::AdjacencyListComputingVisitor::ComputeAdjacencyList
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.cc
    functionUses: 0
    functionsReached:
    - Accept
    - std::move
    linkageType: ''
    returnType: ModuleGraph::AdjacencyList
    signature: "ModuleGraph::AdjacencyList ComputeAdjacencyList(\n      const ir::Module&
      module)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:39,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph.cc:39,1
    - Dst: inputs
      Src: /src/raksha/src/analysis/common/module_graph.cc:44,1
    - Dst: insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:46,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph.cc:46,1
    - Dst: second::insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:47,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/common/module_graph.cc:48,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph.cc:48,1
    - Dst: NumberOfOutputs
      Src: /src/raksha/src/analysis/common/module_graph.cc:53,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph.cc:57,1
    - Dst: GetOutputValue
      Src: /src/raksha/src/analysis/common/module_graph.cc:57,1
    - Dst: insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:58,1
    - Dst: insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:61,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph.cc:61,1
    - Dst: second::insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:62,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/common/module_graph.cc:62,1
    - Dst: Unit
      Src: /src/raksha/src/analysis/common/module_graph.cc:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - ir::Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 65
    functionName: raksha::analysis::common::AdjacencyListComputingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.cc
    functionUses: 0
    functionsReached:
    - Unit
    - std::make_pair
    - NumberOfOutputs
    - second::insert
    - inputs
    - raksha::analysis::common::GetPrettyPrintedNode
    - GetOutputValue
    - insert
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const ir::Operation& operation) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/analysis/common/module_graph.cc:73,1
    - Dst: raksha::analysis::common::AdjacencyListComputingVisitor::ComputeAdjacencyList
      Src: /src/raksha/src/analysis/common/module_graph.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - module
    argTypes:
    - ir::Module*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: raksha::analysis::common::ModuleGraph::ModuleGraph
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - raksha::analysis::common::AdjacencyListComputingVisitor::ComputeAdjacencyList
    linkageType: ''
    returnType: void
    signature: void ModuleGraph::ModuleGraph(const ir::Module* module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Accept
      Src: /src/raksha/src/analysis/common/module_graph.cc:32,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/common/module_graph.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - ir::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: raksha::analysis::common::AdjacencyListComputingVisitor::ComputeAdjacencyList
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.cc
    functionUses: 1
    functionsReached:
    - Accept
    - std::move
    linkageType: ''
    returnType: ModuleGraph::AdjacencyList
    signature: "ModuleGraph::AdjacencyList ComputeAdjacencyList(\n      const ir::Module&
      module)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:39,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph.cc:39,1
    - Dst: inputs
      Src: /src/raksha/src/analysis/common/module_graph.cc:44,1
    - Dst: insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:46,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph.cc:46,1
    - Dst: second::insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:47,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/common/module_graph.cc:48,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph.cc:48,1
    - Dst: NumberOfOutputs
      Src: /src/raksha/src/analysis/common/module_graph.cc:53,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph.cc:57,1
    - Dst: GetOutputValue
      Src: /src/raksha/src/analysis/common/module_graph.cc:57,1
    - Dst: insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:58,1
    - Dst: insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:61,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph.cc:61,1
    - Dst: second::insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:62,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/common/module_graph.cc:62,1
    - Dst: Unit
      Src: /src/raksha/src/analysis/common/module_graph.cc:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - ir::Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 65
    functionName: raksha::analysis::common::AdjacencyListComputingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.cc
    functionUses: 0
    functionsReached:
    - Unit
    - std::make_pair
    - NumberOfOutputs
    - second::insert
    - inputs
    - raksha::analysis::common::GetPrettyPrintedNode
    - GetOutputValue
    - insert
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const ir::Operation& operation) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Accept
      Src: /src/raksha/src/analysis/common/module_graph.cc:32,1
    - Dst: std::move
      Src: /src/raksha/src/analysis/common/module_graph.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - ir::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: raksha::analysis::common::AdjacencyListComputingVisitor::ComputeAdjacencyList
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.cc
    functionUses: 1
    functionsReached:
    - Accept
    - std::move
    linkageType: ''
    returnType: ModuleGraph::AdjacencyList
    signature: "ModuleGraph::AdjacencyList ComputeAdjacencyList(\n      const ir::Module&
      module)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:39,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph.cc:39,1
    - Dst: inputs
      Src: /src/raksha/src/analysis/common/module_graph.cc:44,1
    - Dst: insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:46,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph.cc:46,1
    - Dst: second::insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:47,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/common/module_graph.cc:48,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph.cc:48,1
    - Dst: NumberOfOutputs
      Src: /src/raksha/src/analysis/common/module_graph.cc:53,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph.cc:57,1
    - Dst: GetOutputValue
      Src: /src/raksha/src/analysis/common/module_graph.cc:57,1
    - Dst: insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:58,1
    - Dst: insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:61,1
    - Dst: raksha::analysis::common::GetPrettyPrintedNode
      Src: /src/raksha/src/analysis/common/module_graph.cc:61,1
    - Dst: second::insert
      Src: /src/raksha/src/analysis/common/module_graph.cc:62,1
    - Dst: std::make_pair
      Src: /src/raksha/src/analysis/common/module_graph.cc:62,1
    - Dst: Unit
      Src: /src/raksha/src/analysis/common/module_graph.cc:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - ir::Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 65
    functionName: raksha::analysis::common::AdjacencyListComputingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.cc
    functionUses: 0
    functionsReached:
    - Unit
    - std::make_pair
    - NumberOfOutputs
    - second::insert
    - inputs
    - raksha::analysis::common::GetPrettyPrintedNode
    - GetOutputValue
    - insert
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const ir::Operation& operation) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/analysis/common/module_graph.cc:73,1
    - Dst: raksha::analysis::common::AdjacencyListComputingVisitor::ComputeAdjacencyList
      Src: /src/raksha/src/analysis/common/module_graph.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - module
    argTypes:
    - ir::Module*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: raksha::analysis::common::ModuleGraph::ModuleGraph
    functionSourceFile: /src/raksha/src/analysis/common/module_graph.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - raksha::analysis::common::AdjacencyListComputingVisitor::ComputeAdjacencyList
    linkageType: ''
    returnType: void
    signature: void ModuleGraph::ModuleGraph(const ir::Module* module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: antlr4::Parser*::notifyErrorListeners
      Src: /src/raksha/src/policy/parser.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - parser
    - ' e'
    argTypes:
    - antlr4::Parser*
    - antlr4::RecognitionException
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: raksha::policy::ErrorStrategy::reportError
    functionSourceFile: /src/raksha/src/policy/parser.cc
    functionUses: 0
    functionsReached:
    - antlr4::Parser*::notifyErrorListeners
    linkageType: ''
    returnType: void
    signature: "void reportError(antlr4::Parser* parser,\n                   const
      antlr4::RecognitionException& e) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<ErrorStrategy>
      Src: /src/raksha/src/policy/parser.cc:40,1
    - Dst: policy_cc_generator::PolicyParser::setErrorHandler
      Src: /src/raksha/src/policy/parser.cc:41,1
    - Dst: policy_cc_generator::PolicyParser::policy
      Src: /src/raksha/src/policy/parser.cc:42,1
    - Dst: policy_cc_generator::PolicyParser::getNumberOfSyntaxErrors
      Src: /src/raksha/src/policy/parser.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - prog_text
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: raksha::policy::ParseProgramIsValid
    functionSourceFile: /src/raksha/src/policy/parser.cc
    functionUses: 0
    functionsReached:
    - policy_cc_generator::PolicyParser::getNumberOfSyntaxErrors
    - std::make_shared<ErrorStrategy>
    - policy_cc_generator::PolicyParser::policy
    - policy_cc_generator::PolicyParser::setErrorHandler
    linkageType: ''
    returnType: bool
    signature: bool ParseProgramIsValid(absl::string_view prog_text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: antlr4::Parser*::notifyErrorListeners
      Src: /src/raksha/src/policy/parser.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - parser
    - ' e'
    argTypes:
    - antlr4::Parser*
    - antlr4::RecognitionException
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: raksha::policy::ErrorStrategy::reportError
    functionSourceFile: /src/raksha/src/policy/parser.cc
    functionUses: 0
    functionsReached:
    - antlr4::Parser*::notifyErrorListeners
    linkageType: ''
    returnType: void
    signature: "void reportError(antlr4::Parser* parser,\n                   const
      antlr4::RecognitionException& e) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<ErrorStrategy>
      Src: /src/raksha/src/policy/parser.cc:40,1
    - Dst: policy_cc_generator::PolicyParser::setErrorHandler
      Src: /src/raksha/src/policy/parser.cc:41,1
    - Dst: policy_cc_generator::PolicyParser::policy
      Src: /src/raksha/src/policy/parser.cc:42,1
    - Dst: policy_cc_generator::PolicyParser::getNumberOfSyntaxErrors
      Src: /src/raksha/src/policy/parser.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - prog_text
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: raksha::policy::ParseProgramIsValid
    functionSourceFile: /src/raksha/src/policy/parser.cc
    functionUses: 0
    functionsReached:
    - policy_cc_generator::PolicyParser::getNumberOfSyntaxErrors
    - std::make_shared<ErrorStrategy>
    - policy_cc_generator::PolicyParser::policy
    - policy_cc_generator::PolicyParser::setErrorHandler
    linkageType: ''
    returnType: bool
    signature: bool ParseProgramIsValid(absl::string_view prog_text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/policy/parser_test.cc:14,1
    - Dst: raksha::policy::ParseProgramIsValid
      Src: /src/raksha/src/policy/parser_test.cc:15,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/policy/parser_test.cc:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: raksha::policy::TEST_P
    functionSourceFile: /src/raksha/src/policy/parser_test.cc
    functionUses: 0
    functionsReached:
    - raksha::policy::ParseProgramIsValid
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(PolicyParserTest, SimpleTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/policy/parser_test.cc:14,1
    - Dst: raksha::policy::ParseProgramIsValid
      Src: /src/raksha/src/policy/parser_test.cc:15,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/policy/parser_test.cc:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: raksha::policy::TEST_P
    functionSourceFile: /src/raksha/src/policy/parser_test.cc
    functionUses: 0
    functionsReached:
    - raksha::policy::ParseProgramIsValid
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(PolicyParserTest, SimpleTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:26,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:26,1
    - Dst: std::vector::end
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:26,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:27,1
    - Dst: auto::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:27,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:27,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:28,1
    - Dst: auto::end
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:28,1
    - Dst: std::vector::end
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:28,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:30,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:30,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:30,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:31,1
    - Dst: auto::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:31,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:31,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:32,1
    - Dst: auto::end
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:32,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: raksha::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/iterator_range_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::vector::begin
    - auto::end
    - raksha::utils::make_range
    - std::vector::end
    - auto::begin
    linkageType: ''
    returnType: void
    signature: void TEST(MakeRangeTest, FieldsAreInitializedCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:37,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:37,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:37,1
    - Dst: std::vector::end
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:37,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:38,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:38,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:38,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:38,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:39,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:39,1
    - Dst: std::vector::end
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:39,1
    - Dst: std::vector::end
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: raksha::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/iterator_range_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - EXPECT_TRUE
    - EXPECT_FALSE
    - raksha::utils::make_range
    - std::vector::end
    linkageType: ''
    returnType: void
    signature: void TEST(MakeRangeTest, EmptynessIsDetected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:44,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:44,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:44,1
    - Dst: std::vector::end
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:44,1
    - Dst: ::testing::ElementsAre
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:45,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:46,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:46,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:46,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:46,1
    - Dst: ::testing::ElementsAre
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:47,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:48,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:48,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:48,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:48,1
    - Dst: ::testing::ElementsAre
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: raksha::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/iterator_range_test.cc
    functionUses: 0
    functionsReached:
    - ::testing::ElementsAre
    - std::vector::begin
    - EXPECT_THAT
    - raksha::utils::make_range
    - std::vector::end
    linkageType: ''
    returnType: void
    signature: void TEST(MakeRangeTest, AllowsIteration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:26,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:26,1
    - Dst: std::vector::end
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:26,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:27,1
    - Dst: auto::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:27,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:27,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:28,1
    - Dst: auto::end
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:28,1
    - Dst: std::vector::end
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:28,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:30,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:30,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:30,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:31,1
    - Dst: auto::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:31,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:31,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:32,1
    - Dst: auto::end
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:32,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: raksha::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/iterator_range_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::vector::begin
    - auto::end
    - raksha::utils::make_range
    - std::vector::end
    - auto::begin
    linkageType: ''
    returnType: void
    signature: void TEST(MakeRangeTest, FieldsAreInitializedCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:37,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:37,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:37,1
    - Dst: std::vector::end
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:37,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:38,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:38,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:38,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:38,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:39,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:39,1
    - Dst: std::vector::end
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:39,1
    - Dst: std::vector::end
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: raksha::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/iterator_range_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - EXPECT_TRUE
    - EXPECT_FALSE
    - raksha::utils::make_range
    - std::vector::end
    linkageType: ''
    returnType: void
    signature: void TEST(MakeRangeTest, EmptynessIsDetected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:44,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:44,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:44,1
    - Dst: std::vector::end
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:44,1
    - Dst: ::testing::ElementsAre
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:45,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:46,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:46,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:46,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:46,1
    - Dst: ::testing::ElementsAre
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:47,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:48,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:48,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:48,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:48,1
    - Dst: ::testing::ElementsAre
      Src: /src/raksha/src/common/utils/iterator_range_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: raksha::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/iterator_range_test.cc
    functionUses: 0
    functionsReached:
    - ::testing::ElementsAre
    - std::vector::begin
    - EXPECT_THAT
    - raksha::utils::make_range
    - std::vector::end
    linkageType: ''
    returnType: void
    signature: void TEST(MakeRangeTest, AllowsIteration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_range.h:32,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_range.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - I
    - I
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: raksha::utils::iterator_range::iterator_range
    functionSourceFile: /src/raksha/src/common/utils/iterator_range.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void iterator_range(I begin, I end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: raksha::utils::iterator_range::begin
    functionSourceFile: /src/raksha/src/common/utils/iterator_range.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: I
    signature: I begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::utils::iterator_range::end
    functionSourceFile: /src/raksha/src/common/utils/iterator_range.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: I
    signature: I end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::iterator_range::begin
      Src: /src/raksha/src/common/utils/iterator_range.h:36,1
    - Dst: raksha::utils::iterator_range::end
      Src: /src/raksha/src/common/utils/iterator_range.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: raksha::utils::iterator_range::empty
    functionSourceFile: /src/raksha/src/common/utils/iterator_range.h
    functionUses: 0
    functionsReached:
    - raksha::utils::iterator_range::begin
    - raksha::utils::iterator_range::end
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator_range<I>
      Src: /src/raksha/src/common/utils/iterator_range.h:45,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_range.h:45,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_range.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - I
    - I
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: raksha::utils::make_range
    functionSourceFile: /src/raksha/src/common/utils/iterator_range.h
    functionUses: 6
    functionsReached:
    - iterator_range<I>
    - std::move
    linkageType: ''
    returnType: iterator_range<I>
    signature: iterator_range<I> make_range(I begin, I end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_range.h:32,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_range.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - I
    - I
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: raksha::utils::iterator_range::iterator_range
    functionSourceFile: /src/raksha/src/common/utils/iterator_range.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void iterator_range(I begin, I end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: raksha::utils::iterator_range::begin
    functionSourceFile: /src/raksha/src/common/utils/iterator_range.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: I
    signature: I begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::utils::iterator_range::end
    functionSourceFile: /src/raksha/src/common/utils/iterator_range.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: I
    signature: I end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::iterator_range::begin
      Src: /src/raksha/src/common/utils/iterator_range.h:36,1
    - Dst: raksha::utils::iterator_range::end
      Src: /src/raksha/src/common/utils/iterator_range.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: raksha::utils::iterator_range::empty
    functionSourceFile: /src/raksha/src/common/utils/iterator_range.h
    functionUses: 0
    functionsReached:
    - raksha::utils::iterator_range::begin
    - raksha::utils::iterator_range::end
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator_range<I>
      Src: /src/raksha/src/common/utils/iterator_range.h:45,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_range.h:45,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_range.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - I
    - I
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: raksha::utils::make_range
    functionSourceFile: /src/raksha/src/common/utils/iterator_range.h
    functionUses: 6
    functionsReached:
    - iterator_range<I>
    - std::move
    linkageType: ''
    returnType: iterator_range<I>
    signature: iterator_range<I> make_range(I begin, I end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:30,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: raksha::TEST_F
    functionSourceFile: /src/raksha/src/common/utils/ref_counter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(RefCounterTest, Initialization)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:37,1
    - Dst: RefCounter::FetchAdd
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:39,1
    - Dst: RefCounter::FetchAdd
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: raksha::TEST_F
    functionSourceFile: /src/raksha/src/common/utils/ref_counter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - RefCounter::FetchAdd
    linkageType: ''
    returnType: void
    signature: void TEST_F(RefCounterTest, FetchAddIncrementsAndReturnsOldValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:45,1
    - Dst: RefCounter::FetchSub
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:45,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:47,1
    - Dst: RefCounter::FetchSub
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: raksha::TEST_F
    functionSourceFile: /src/raksha/src/common/utils/ref_counter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - RefCounter::FetchSub
    linkageType: ''
    returnType: void
    signature: void TEST_F(RefCounterTest, FetchSubDecrementsAndReturnsOldValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:52,1
    - Dst: RefCounter::FetchSub
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: raksha::TEST_F
    functionSourceFile: /src/raksha/src/common/utils/ref_counter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - RefCounter::FetchSub
    linkageType: ''
    returnType: void
    signature: void TEST_F(RefCounterTest, FetchSubDecrementToLessThanZeroCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:30,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: raksha::TEST_F
    functionSourceFile: /src/raksha/src/common/utils/ref_counter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(RefCounterTest, Initialization)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:37,1
    - Dst: RefCounter::FetchAdd
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:39,1
    - Dst: RefCounter::FetchAdd
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: raksha::TEST_F
    functionSourceFile: /src/raksha/src/common/utils/ref_counter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - RefCounter::FetchAdd
    linkageType: ''
    returnType: void
    signature: void TEST_F(RefCounterTest, FetchAddIncrementsAndReturnsOldValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:45,1
    - Dst: RefCounter::FetchSub
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:45,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:47,1
    - Dst: RefCounter::FetchSub
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: raksha::TEST_F
    functionSourceFile: /src/raksha/src/common/utils/ref_counter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - RefCounter::FetchSub
    linkageType: ''
    returnType: void
    signature: void TEST_F(RefCounterTest, FetchSubDecrementsAndReturnsOldValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:52,1
    - Dst: RefCounter::FetchSub
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: raksha::TEST_F
    functionSourceFile: /src/raksha/src/common/utils/ref_counter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - RefCounter::FetchSub
    linkageType: ''
    returnType: void
    signature: void TEST_F(RefCounterTest, FetchSubDecrementToLessThanZeroCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:30,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: raksha::TEST_F
    functionSourceFile: /src/raksha/src/common/utils/ref_counter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(RefCounterTest, Initialization)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:37,1
    - Dst: RefCounter::FetchAdd
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:39,1
    - Dst: RefCounter::FetchAdd
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: raksha::TEST_F
    functionSourceFile: /src/raksha/src/common/utils/ref_counter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - RefCounter::FetchAdd
    linkageType: ''
    returnType: void
    signature: void TEST_F(RefCounterTest, FetchAddIncrementsAndReturnsOldValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:45,1
    - Dst: RefCounter::FetchSub
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:45,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:47,1
    - Dst: RefCounter::FetchSub
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: raksha::TEST_F
    functionSourceFile: /src/raksha/src/common/utils/ref_counter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - RefCounter::FetchSub
    linkageType: ''
    returnType: void
    signature: void TEST_F(RefCounterTest, FetchSubDecrementsAndReturnsOldValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:52,1
    - Dst: RefCounter::FetchSub
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: raksha::TEST_F
    functionSourceFile: /src/raksha/src/common/utils/ref_counter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - RefCounter::FetchSub
    linkageType: ''
    returnType: void
    signature: void TEST_F(RefCounterTest, FetchSubDecrementToLessThanZeroCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:30,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: raksha::TEST_F
    functionSourceFile: /src/raksha/src/common/utils/ref_counter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(RefCounterTest, Initialization)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:37,1
    - Dst: RefCounter::FetchAdd
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:39,1
    - Dst: RefCounter::FetchAdd
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: raksha::TEST_F
    functionSourceFile: /src/raksha/src/common/utils/ref_counter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - RefCounter::FetchAdd
    linkageType: ''
    returnType: void
    signature: void TEST_F(RefCounterTest, FetchAddIncrementsAndReturnsOldValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:45,1
    - Dst: RefCounter::FetchSub
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:45,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:47,1
    - Dst: RefCounter::FetchSub
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: raksha::TEST_F
    functionSourceFile: /src/raksha/src/common/utils/ref_counter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - RefCounter::FetchSub
    linkageType: ''
    returnType: void
    signature: void TEST_F(RefCounterTest, FetchSubDecrementsAndReturnsOldValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:52,1
    - Dst: RefCounter::FetchSub
      Src: /src/raksha/src/common/utils/ref_counter_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: raksha::TEST_F
    functionSourceFile: /src/raksha/src/common/utils/ref_counter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - RefCounter::FetchSub
    linkageType: ''
    returnType: void
    signature: void TEST_F(RefCounterTest, FetchSubDecrementToLessThanZeroCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:19,1
    - Dst: std::to_string
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - prefix
    argTypes:
    - int
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: operator()(int x, absl::string_view prefix) const
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - std::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string operator()(int x, absl::string_view prefix) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: operator()(int x) const
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - std::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string operator()(int x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - value
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: operator()(int x, int value) const
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int operator()(int x, int value) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:30,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:30,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:31,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:33,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:33,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:34,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:36,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:36,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:37,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:39,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:39,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 41
    functionName: raksha::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_adapted_range
    - EXPECT_THAT
    - ElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(IteratorAdapterTest, MakeRangeWorksWithContainer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:45,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:46,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:46,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:46,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:47,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:48,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:48,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:48,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:49,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: raksha::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_adapted_range
    - EXPECT_THAT
    - std::vector::begin
    - ElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(IteratorAdapterTest, MakeRangeWorksWithIteratorRanges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:55,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:56,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:56,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:56,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:57,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:58,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:59,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:59,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:59,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: raksha::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_adapted_range
    - EXPECT_THAT
    - std::vector::begin
    - ElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(IteratorAdapterTest, MultipleArgumentMakeRangeWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: raksha::utils::TEST_P
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IteratorAdapterEqualityTest, EqualityAndInEqualityTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:19,1
    - Dst: std::to_string
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - prefix
    argTypes:
    - int
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: operator()(int x, absl::string_view prefix) const
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - std::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string operator()(int x, absl::string_view prefix) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: operator()(int x) const
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - std::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string operator()(int x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - value
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: operator()(int x, int value) const
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int operator()(int x, int value) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:30,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:30,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:31,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:33,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:33,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:34,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:36,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:36,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:37,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:39,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:39,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 41
    functionName: raksha::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_adapted_range
    - EXPECT_THAT
    - ElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(IteratorAdapterTest, MakeRangeWorksWithContainer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:45,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:46,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:46,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:46,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:47,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:48,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:48,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:48,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:49,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: raksha::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_adapted_range
    - EXPECT_THAT
    - std::vector::begin
    - ElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(IteratorAdapterTest, MakeRangeWorksWithIteratorRanges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:55,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:56,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:56,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:56,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:57,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:58,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:59,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:59,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:59,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: raksha::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_adapted_range
    - EXPECT_THAT
    - std::vector::begin
    - ElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(IteratorAdapterTest, MultipleArgumentMakeRangeWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: raksha::utils::TEST_P
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IteratorAdapterEqualityTest, EqualityAndInEqualityTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:19,1
    - Dst: std::to_string
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - prefix
    argTypes:
    - int
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: operator()(int x, absl::string_view prefix) const
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - std::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string operator()(int x, absl::string_view prefix) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: operator()(int x) const
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - std::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string operator()(int x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - value
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: operator()(int x, int value) const
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int operator()(int x, int value) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:30,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:30,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:31,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:33,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:33,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:34,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:36,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:36,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:37,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:39,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:39,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 41
    functionName: raksha::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_adapted_range
    - EXPECT_THAT
    - ElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(IteratorAdapterTest, MakeRangeWorksWithContainer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:45,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:46,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:46,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:46,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:47,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:48,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:48,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:48,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:49,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: raksha::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_adapted_range
    - EXPECT_THAT
    - std::vector::begin
    - ElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(IteratorAdapterTest, MakeRangeWorksWithIteratorRanges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:55,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:56,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:56,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:56,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:57,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:58,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:59,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:59,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:59,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: raksha::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_adapted_range
    - EXPECT_THAT
    - std::vector::begin
    - ElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(IteratorAdapterTest, MultipleArgumentMakeRangeWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: raksha::utils::TEST_P
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IteratorAdapterEqualityTest, EqualityAndInEqualityTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:19,1
    - Dst: std::to_string
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - prefix
    argTypes:
    - int
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: operator()(int x, absl::string_view prefix) const
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - std::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string operator()(int x, absl::string_view prefix) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: operator()(int x) const
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - std::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string operator()(int x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - value
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: operator()(int x, int value) const
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int operator()(int x, int value) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:30,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:30,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:31,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:33,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:33,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:34,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:36,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:36,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:37,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:39,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:39,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 41
    functionName: raksha::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_adapted_range
    - EXPECT_THAT
    - ElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(IteratorAdapterTest, MakeRangeWorksWithContainer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:45,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:46,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:46,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:46,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:47,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:48,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:48,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:48,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:49,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: raksha::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_adapted_range
    - EXPECT_THAT
    - std::vector::begin
    - ElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(IteratorAdapterTest, MakeRangeWorksWithIteratorRanges)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:55,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:56,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:56,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:56,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:57,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:58,1
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:59,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:59,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:59,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: raksha::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_adapted_range
    - EXPECT_THAT
    - std::vector::begin
    - ElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(IteratorAdapterTest, MultipleArgumentMakeRangeWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/iterator_adapter_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: raksha::utils::TEST_P
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IteratorAdapterEqualityTest, EqualityAndInEqualityTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::intrusive_ptr::intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:33,1
    - Dst: std::forward<Args>
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:33,1
    - Dst: T::T
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: raksha::intrusive_ptr::create
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    - T::T
    - raksha::intrusive_ptr::intrusive_ptr
    linkageType: ''
    returnType: intrusive_ptr<T>
    signature: intrusive_ptr<T> create(Args&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: raksha::intrusive_ptr::intrusive_ptr
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void intrusive_ptr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::intrusive_ptr::Retain
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: raksha::intrusive_ptr::intrusive_ptr
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 1
    functionsReached:
    - raksha::intrusive_ptr::Retain
    linkageType: ''
    returnType: void
    signature: void intrusive_ptr(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::intrusive_ptr::Retain
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - intrusive_ptr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: raksha::intrusive_ptr::intrusive_ptr
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 1
    functionsReached:
    - raksha::intrusive_ptr::Retain
    linkageType: ''
    returnType: void
    signature: void intrusive_ptr(const intrusive_ptr<T>& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - intrusive_ptr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: raksha::intrusive_ptr::intrusive_ptr
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void intrusive_ptr(intrusive_ptr<T>&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::intrusive_ptr::Retain
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:46,1
    - Dst: raksha::intrusive_ptr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - intrusive_ptr<X>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: raksha::intrusive_ptr::intrusive_ptr
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 1
    functionsReached:
    - raksha::intrusive_ptr::Retain
    - raksha::intrusive_ptr::get
    linkageType: ''
    returnType: void
    signature: void intrusive_ptr(const intrusive_ptr<X>& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: ~intrusive_ptr()
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void ~intrusive_ptr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::Swap
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - intrusive_ptr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: '& operator=(intrusive_ptr<T> other)'
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - raksha::Swap
    linkageType: ''
    returnType: intrusive_ptr<T>
    signature: intrusive_ptr<T> & operator=(intrusive_ptr<T> other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: '& operator*() const'
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: T
    signature: T & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: '* operator->() const'
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: raksha::intrusive_ptr::get
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: operator bool() const
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - intrusive_ptr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: raksha::intrusive_ptr::Swap
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Swap(intrusive_ptr<T>& other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::intrusive_ptr::Retain
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: raksha::intrusive_ptr::Retain
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 4
    functionsReached:
    - raksha::intrusive_ptr::Retain
    linkageType: ''
    returnType: T
    signature: T * Retain(T* p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::intrusive_ptr::Release
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: raksha::intrusive_ptr::Release
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 1
    functionsReached:
    - raksha::intrusive_ptr::Release
    linkageType: ''
    returnType: void
    signature: void Release(T* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::intrusive_ptr::create
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:93,1
    - Dst: std::forward<Args>
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: raksha::make_intrusive_ptr
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - raksha::intrusive_ptr::create
    - std::forward<Args>
    linkageType: ''
    returnType: intrusive_ptr<T>
    signature: intrusive_ptr<T> make_intrusive_ptr(Args&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:98,1
    - Dst: get
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - intrusive_ptr<T>
    - intrusive_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: operator==(const intrusive_ptr<T>& lhs, const intrusive_ptr<U>&
      rhs)
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool operator==(const intrusive_ptr<T>& lhs, const intrusive_ptr<U>&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - intrusive_ptr<T>
    - intrusive_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: operator!=(const intrusive_ptr<T>& lhs, const intrusive_ptr<U>&
      rhs)
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const intrusive_ptr<T>& lhs, const intrusive_ptr<U>&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - intrusive_ptr<T>
    - U*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: operator==(const intrusive_ptr<T>& lhs, U* rhs)
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool operator==(const intrusive_ptr<T>& lhs, U* rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - intrusive_ptr<T>
    - U*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: operator!=(const intrusive_ptr<T>& lhs, U* rhs)
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const intrusive_ptr<T>& lhs, U* rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - ' rhs'
    argTypes:
    - T*
    - intrusive_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: operator==(T* lhs, const intrusive_ptr<U>& rhs)
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool operator==(T* lhs, const intrusive_ptr<U>& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - ' rhs'
    argTypes:
    - T*
    - intrusive_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: operator!=(T* lhs, const intrusive_ptr<U>& rhs)
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool operator!=(T* lhs, const intrusive_ptr<U>& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - intrusive_ptr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: operator==(std::nullptr_t, const intrusive_ptr<T>& rhs)
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool operator==(std::nullptr_t, const intrusive_ptr<T>& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - intrusive_ptr<T>
    - std::nullptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: operator==(const intrusive_ptr<T>& lhs, std::nullptr_t rhs)
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool operator==(const intrusive_ptr<T>& lhs, std::nullptr_t rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - ' rhs'
    argTypes:
    - std::nullptr_t
    - intrusive_ptr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: operator!=(std::nullptr_t lhs, const intrusive_ptr<T>& rhs)
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool operator!=(std::nullptr_t lhs, const intrusive_ptr<T>& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - intrusive_ptr<T>
    - std::nullptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: operator!=(const intrusive_ptr<T>& lhs, std::nullptr_t rhs)
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const intrusive_ptr<T>& lhs, std::nullptr_t rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::intrusive_ptr::intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:33,1
    - Dst: std::forward<Args>
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:33,1
    - Dst: T::T
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: raksha::intrusive_ptr::create
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 1
    functionsReached:
    - std::forward<Args>
    - T::T
    - raksha::intrusive_ptr::intrusive_ptr
    linkageType: ''
    returnType: intrusive_ptr<T>
    signature: intrusive_ptr<T> create(Args&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: raksha::intrusive_ptr::intrusive_ptr
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void intrusive_ptr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::intrusive_ptr::Retain
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: raksha::intrusive_ptr::intrusive_ptr
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 2
    functionsReached:
    - raksha::intrusive_ptr::Retain
    linkageType: ''
    returnType: void
    signature: void intrusive_ptr(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::intrusive_ptr::Retain
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - intrusive_ptr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: raksha::intrusive_ptr::intrusive_ptr
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 2
    functionsReached:
    - raksha::intrusive_ptr::Retain
    linkageType: ''
    returnType: void
    signature: void intrusive_ptr(const intrusive_ptr<T>& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - intrusive_ptr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: raksha::intrusive_ptr::intrusive_ptr
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void intrusive_ptr(intrusive_ptr<T>&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::intrusive_ptr::Retain
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:46,1
    - Dst: raksha::intrusive_ptr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - intrusive_ptr<X>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: raksha::intrusive_ptr::intrusive_ptr
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 2
    functionsReached:
    - raksha::intrusive_ptr::Retain
    - raksha::intrusive_ptr::get
    linkageType: ''
    returnType: void
    signature: void intrusive_ptr(const intrusive_ptr<X>& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: ~intrusive_ptr()
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: void ~intrusive_ptr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Swap
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - intrusive_ptr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: '& operator=(intrusive_ptr<T> other)'
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - Swap
    linkageType: ''
    returnType: intrusive_ptr<T>
    signature: intrusive_ptr<T> & operator=(intrusive_ptr<T> other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: '& operator*() const'
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: T
    signature: T & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: '* operator->() const'
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: raksha::intrusive_ptr::get
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: operator bool() const
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - intrusive_ptr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: raksha::intrusive_ptr::Swap
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Swap(intrusive_ptr<T>& other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::intrusive_ptr::Retain
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: raksha::intrusive_ptr::Retain
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 8
    functionsReached:
    - raksha::intrusive_ptr::Retain
    linkageType: ''
    returnType: T
    signature: T * Retain(T* p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::intrusive_ptr::Release
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: raksha::intrusive_ptr::Release
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 2
    functionsReached:
    - raksha::intrusive_ptr::Release
    linkageType: ''
    returnType: void
    signature: void Release(T* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::intrusive_ptr::create
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:93,1
    - Dst: std::forward<Args>
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: raksha::make_intrusive_ptr
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - raksha::intrusive_ptr::create
    - std::forward<Args>
    linkageType: ''
    returnType: intrusive_ptr<T>
    signature: intrusive_ptr<T> make_intrusive_ptr(Args&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:98,1
    - Dst: get
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - intrusive_ptr<T>
    - intrusive_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: operator==(const intrusive_ptr<T>& lhs, const intrusive_ptr<U>&
      rhs)
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool operator==(const intrusive_ptr<T>& lhs, const intrusive_ptr<U>&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - intrusive_ptr<T>
    - intrusive_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: operator!=(const intrusive_ptr<T>& lhs, const intrusive_ptr<U>&
      rhs)
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const intrusive_ptr<T>& lhs, const intrusive_ptr<U>&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - intrusive_ptr<T>
    - U*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: operator==(const intrusive_ptr<T>& lhs, U* rhs)
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool operator==(const intrusive_ptr<T>& lhs, U* rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - intrusive_ptr<T>
    - U*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: operator!=(const intrusive_ptr<T>& lhs, U* rhs)
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const intrusive_ptr<T>& lhs, U* rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - ' rhs'
    argTypes:
    - T*
    - intrusive_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: operator==(T* lhs, const intrusive_ptr<U>& rhs)
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool operator==(T* lhs, const intrusive_ptr<U>& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - ' rhs'
    argTypes:
    - T*
    - intrusive_ptr<U>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: operator!=(T* lhs, const intrusive_ptr<U>& rhs)
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool operator!=(T* lhs, const intrusive_ptr<U>& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - intrusive_ptr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: operator==(std::nullptr_t, const intrusive_ptr<T>& rhs)
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool operator==(std::nullptr_t, const intrusive_ptr<T>& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - intrusive_ptr<T>
    - std::nullptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: operator==(const intrusive_ptr<T>& lhs, std::nullptr_t rhs)
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool operator==(const intrusive_ptr<T>& lhs, std::nullptr_t rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - ' rhs'
    argTypes:
    - std::nullptr_t
    - intrusive_ptr<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: operator!=(std::nullptr_t lhs, const intrusive_ptr<T>& rhs)
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool operator!=(std::nullptr_t lhs, const intrusive_ptr<T>& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/raksha/src/common/utils/intrusive_ptr.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - rhs
    argTypes:
    - intrusive_ptr<T>
    - std::nullptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: operator!=(const intrusive_ptr<T>& lhs, std::nullptr_t rhs)
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const intrusive_ptr<T>& lhs, std::nullptr_t rhs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::filesystem::temp_directory_path
      Src: /src/raksha/src/common/utils/filesystem.cc:32,1
    - Dst: absl::FailedPreconditionError
      Src: /src/raksha/src/common/utils/filesystem.cc:34,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/common/utils/filesystem.cc:34,1
    - Dst: std::error_code::message
      Src: /src/raksha/src/common/utils/filesystem.cc:35,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/common/utils/filesystem.cc:38,1
    - Dst: ::mkdtemp
      Src: /src/raksha/src/common/utils/filesystem.cc:39,1
    - Dst: std::string::data
      Src: /src/raksha/src/common/utils/filesystem.cc:39,1
    - Dst: absl::FailedPreconditionError
      Src: /src/raksha/src/common/utils/filesystem.cc:40,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/common/utils/filesystem.cc:41,1
    - Dst: strerror
      Src: /src/raksha/src/common/utils/filesystem.cc:42,1
    - Dst: std::filesystem::path
      Src: /src/raksha/src/common/utils/filesystem.cc:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 46
    functionName: raksha::common::utils::CreateTemporaryDirectory
    functionSourceFile: /src/raksha/src/common/utils/filesystem.cc
    functionUses: 0
    functionsReached:
    - ::mkdtemp
    - strerror
    - std::filesystem::path
    - std::string::data
    - std::error_code::message
    - std::filesystem::temp_directory_path
    - absl::FailedPreconditionError
    - absl::StrFormat
    linkageType: ''
    returnType: absl::StatusOr<std::filesystem::path>
    signature: absl::StatusOr<std::filesystem::path> CreateTemporaryDirectory()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::filesystem::temp_directory_path
      Src: /src/raksha/src/common/utils/filesystem.cc:32,1
    - Dst: absl::FailedPreconditionError
      Src: /src/raksha/src/common/utils/filesystem.cc:34,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/common/utils/filesystem.cc:34,1
    - Dst: std::error_code::message
      Src: /src/raksha/src/common/utils/filesystem.cc:35,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/common/utils/filesystem.cc:38,1
    - Dst: ::mkdtemp
      Src: /src/raksha/src/common/utils/filesystem.cc:39,1
    - Dst: std::string::data
      Src: /src/raksha/src/common/utils/filesystem.cc:39,1
    - Dst: absl::FailedPreconditionError
      Src: /src/raksha/src/common/utils/filesystem.cc:40,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/common/utils/filesystem.cc:41,1
    - Dst: strerror
      Src: /src/raksha/src/common/utils/filesystem.cc:42,1
    - Dst: std::filesystem::path
      Src: /src/raksha/src/common/utils/filesystem.cc:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 46
    functionName: raksha::common::utils::CreateTemporaryDirectory
    functionSourceFile: /src/raksha/src/common/utils/filesystem.cc
    functionUses: 0
    functionsReached:
    - ::mkdtemp
    - strerror
    - std::filesystem::path
    - std::string::data
    - std::error_code::message
    - std::filesystem::temp_directory_path
    - absl::FailedPreconditionError
    - absl::StrFormat
    linkageType: ''
    returnType: absl::StatusOr<std::filesystem::path>
    signature: absl::StatusOr<std::filesystem::path> CreateTemporaryDirectory()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/raksha/src/common/utils/map_iter.h:33,1
    - Dst: size
      Src: /src/raksha/src/common/utils/map_iter.h:33,1
    - Dst: std::transform
      Src: /src/raksha/src/common/utils/map_iter.h:34,1
    - Dst: std::begin
      Src: /src/raksha/src/common/utils/map_iter.h:34,1
    - Dst: std::end
      Src: /src/raksha/src/common/utils/map_iter.h:34,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/common/utils/map_iter.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' input'
    - map_fn
    argTypes:
    - C
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: raksha::utils::MapIter
    functionSourceFile: /src/raksha/src/common/utils/map_iter.h
    functionUses: 0
    functionsReached:
    - std::transform
    - std::begin
    - std::end
    - std::vector::reserve
    - std::back_inserter
    - size
    linkageType: ''
    returnType: std::vector<U>
    signature: std::vector<U> MapIter(const C& input, F map_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/raksha/src/common/utils/map_iter.h:33,1
    - Dst: size
      Src: /src/raksha/src/common/utils/map_iter.h:33,1
    - Dst: std::transform
      Src: /src/raksha/src/common/utils/map_iter.h:34,1
    - Dst: std::begin
      Src: /src/raksha/src/common/utils/map_iter.h:34,1
    - Dst: std::end
      Src: /src/raksha/src/common/utils/map_iter.h:34,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/common/utils/map_iter.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' input'
    - map_fn
    argTypes:
    - C
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: raksha::utils::MapIter
    functionSourceFile: /src/raksha/src/common/utils/map_iter.h
    functionUses: 0
    functionsReached:
    - std::transform
    - std::begin
    - std::end
    - std::vector::reserve
    - std::back_inserter
    - size
    linkageType: ''
    returnType: std::vector<U>
    signature: std::vector<U> MapIter(const C& input, F map_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename C::value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: "& operator()(\n      const typename C::value_type& value) const"
    functionSourceFile: /src/raksha/src/common/utils/ranges.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: typename C::key_type
    signature: "typename C::key_type & operator()(\n      const typename C::value_type&
      value) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename C::value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: "& operator()(\n      const typename C::value_type& value) const"
    functionSourceFile: /src/raksha/src/common/utils/ranges.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: typename C::mapped_type
    signature: "typename C::mapped_type & operator()(\n      const typename C::value_type&
      value) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename C::value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: "& operator()(\n      const typename C::value_type& value) const"
    functionSourceFile: /src/raksha/src/common/utils/ranges.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: typename C::key_type
    signature: "typename C::key_type & operator()(\n      const typename C::value_type&
      value) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename C::value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: "& operator()(\n      const typename C::value_type& value) const"
    functionSourceFile: /src/raksha/src/common/utils/ranges.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: typename C::mapped_type
    signature: "typename C::mapped_type & operator()(\n      const typename C::value_type&
      value) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_range
      Src: /src/raksha/src/common/utils/ranges.h:35,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/ranges.h:35,1
    - Dst: begin
      Src: /src/raksha/src/common/utils/ranges.h:35,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/ranges.h:35,1
    - Dst: end
      Src: /src/raksha/src/common/utils/ranges.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - C
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: raksha::utils::ranges::all
    functionSourceFile: /src/raksha/src/common/utils/ranges.h
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - end
    - make_range
    linkageType: ''
    returnType: auto
    signature: auto all(const C& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_adapted_range<internal::MapKeySelector<C>>
      Src: /src/raksha/src/common/utils/ranges.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - C
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: raksha::utils::ranges::keys
    functionSourceFile: /src/raksha/src/common/utils/ranges.h
    functionUses: 6
    functionsReached:
    - make_adapted_range<internal::MapKeySelector<C>>
    linkageType: ''
    returnType: auto
    signature: auto keys(const C& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_adapted_range<internal::MapValueSelector<C>>
      Src: /src/raksha/src/common/utils/ranges.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - C
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: raksha::utils::ranges::values
    functionSourceFile: /src/raksha/src/common/utils/ranges.h
    functionUses: 0
    functionsReached:
    - make_adapted_range<internal::MapValueSelector<C>>
    linkageType: ''
    returnType: auto
    signature: auto values(const C& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename C::value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: "& operator()(\n      const typename C::value_type& value) const"
    functionSourceFile: /src/raksha/src/common/utils/ranges.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: typename C::key_type
    signature: "typename C::key_type & operator()(\n      const typename C::value_type&
      value) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename C::value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: "& operator()(\n      const typename C::value_type& value) const"
    functionSourceFile: /src/raksha/src/common/utils/ranges.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: typename C::mapped_type
    signature: "typename C::mapped_type & operator()(\n      const typename C::value_type&
      value) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename C::value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: "& operator()(\n      const typename C::value_type& value) const"
    functionSourceFile: /src/raksha/src/common/utils/ranges.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: typename C::key_type
    signature: "typename C::key_type & operator()(\n      const typename C::value_type&
      value) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename C::value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: "& operator()(\n      const typename C::value_type& value) const"
    functionSourceFile: /src/raksha/src/common/utils/ranges.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: typename C::mapped_type
    signature: "typename C::mapped_type & operator()(\n      const typename C::value_type&
      value) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_range
      Src: /src/raksha/src/common/utils/ranges.h:35,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/ranges.h:35,1
    - Dst: begin
      Src: /src/raksha/src/common/utils/ranges.h:35,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/ranges.h:35,1
    - Dst: end
      Src: /src/raksha/src/common/utils/ranges.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - C
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: raksha::utils::ranges::all
    functionSourceFile: /src/raksha/src/common/utils/ranges.h
    functionUses: 0
    functionsReached:
    - std::move
    - begin
    - end
    - make_range
    linkageType: ''
    returnType: auto
    signature: auto all(const C& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_adapted_range<internal::MapKeySelector<C>>
      Src: /src/raksha/src/common/utils/ranges.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - C
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: raksha::utils::ranges::keys
    functionSourceFile: /src/raksha/src/common/utils/ranges.h
    functionUses: 6
    functionsReached:
    - make_adapted_range<internal::MapKeySelector<C>>
    linkageType: ''
    returnType: auto
    signature: auto keys(const C& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_adapted_range<internal::MapValueSelector<C>>
      Src: /src/raksha/src/common/utils/ranges.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - C
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: raksha::utils::ranges::values
    functionSourceFile: /src/raksha/src/common/utils/ranges.h
    functionUses: 0
    functionsReached:
    - make_adapted_range<internal::MapValueSelector<C>>
    linkageType: ''
    returnType: auto
    signature: auto values(const C& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: raksha::RefCounter::RefCounter
    functionSourceFile: /src/raksha/src/common/utils/ref_counter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RefCounter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - init
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: raksha::RefCounter::RefCounter
    functionSourceFile: /src/raksha/src/common/utils/ref_counter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RefCounter(size_t init)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: operator size_t() const
    functionSourceFile: /src/raksha/src/common/utils/ref_counter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator size_t() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - increment
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: raksha::RefCounter::FetchAdd
    functionSourceFile: /src/raksha/src/common/utils/ref_counter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t FetchAdd(size_t increment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/common/utils/ref_counter.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - decrement
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: raksha::RefCounter::FetchSub
    functionSourceFile: /src/raksha/src/common/utils/ref_counter.h
    functionUses: 0
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t FetchSub(size_t decrement)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: raksha::RefCounter::RefCounter
    functionSourceFile: /src/raksha/src/common/utils/ref_counter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RefCounter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - init
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: raksha::RefCounter::RefCounter
    functionSourceFile: /src/raksha/src/common/utils/ref_counter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RefCounter(size_t init)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: operator size_t() const
    functionSourceFile: /src/raksha/src/common/utils/ref_counter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator size_t() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - increment
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: raksha::RefCounter::FetchAdd
    functionSourceFile: /src/raksha/src/common/utils/ref_counter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t FetchAdd(size_t increment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/common/utils/ref_counter.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - decrement
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: raksha::RefCounter::FetchSub
    functionSourceFile: /src/raksha/src/common/utils/ref_counter.h
    functionUses: 0
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: size_t
    signature: size_t FetchSub(size_t decrement)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fold_fn
      Src: /src/raksha/src/common/utils/fold.h:43,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/fold.h:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - begin_iter
    - end_iter
    - accumulated
    - fold_fn
    argTypes:
    - I
    - I
    - A
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: raksha::common::utils::fold
    functionSourceFile: /src/raksha/src/common/utils/fold.h
    functionUses: 12
    functionsReached:
    - std::move
    - fold_fn
    linkageType: ''
    returnType: A
    signature: A fold(I begin_iter, I end_iter, A accumulated, F fold_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/common/utils/fold.h:52,1
    - Dst: std::begin
      Src: /src/raksha/src/common/utils/fold.h:52,1
    - Dst: std::end
      Src: /src/raksha/src/common/utils/fold.h:52,1
    - Dst: std::forward<A>
      Src: /src/raksha/src/common/utils/fold.h:52,1
    - Dst: std::forward<F>
      Src: /src/raksha/src/common/utils/fold.h:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - container
    - init
    - fold_fn
    argTypes:
    - C
    - A
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: raksha::common::utils::fold
    functionSourceFile: /src/raksha/src/common/utils/fold.h
    functionUses: 13
    functionsReached:
    - std::begin
    - std::end
    - std::forward<F>
    - std::forward<A>
    - raksha::common::utils::fold
    linkageType: ''
    returnType: A
    signature: A fold(const C &container, A &&init, F &&fold_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/common/utils/fold.h:60,1
    - Dst: std::rbegin
      Src: /src/raksha/src/common/utils/fold.h:60,1
    - Dst: std::rend
      Src: /src/raksha/src/common/utils/fold.h:60,1
    - Dst: std::forward<A>
      Src: /src/raksha/src/common/utils/fold.h:61,1
    - Dst: std::forward<F>
      Src: /src/raksha/src/common/utils/fold.h:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - container
    - init
    - fold_fn
    argTypes:
    - C
    - A
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: raksha::common::utils::rfold
    functionSourceFile: /src/raksha/src/common/utils/fold.h
    functionUses: 0
    functionsReached:
    - std::rbegin
    - std::forward<F>
    - std::forward<A>
    - raksha::common::utils::fold
    - std::rend
    linkageType: ''
    returnType: A
    signature: A rfold(const C &container, A &&init, F &&fold_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fold_fn
      Src: /src/raksha/src/common/utils/fold.h:43,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/fold.h:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - begin_iter
    - end_iter
    - accumulated
    - fold_fn
    argTypes:
    - I
    - I
    - A
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: raksha::common::utils::fold
    functionSourceFile: /src/raksha/src/common/utils/fold.h
    functionUses: 14
    functionsReached:
    - std::move
    - fold_fn
    linkageType: ''
    returnType: A
    signature: A fold(I begin_iter, I end_iter, A accumulated, F fold_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/common/utils/fold.h:52,1
    - Dst: std::begin
      Src: /src/raksha/src/common/utils/fold.h:52,1
    - Dst: std::end
      Src: /src/raksha/src/common/utils/fold.h:52,1
    - Dst: std::forward<A>
      Src: /src/raksha/src/common/utils/fold.h:52,1
    - Dst: std::forward<F>
      Src: /src/raksha/src/common/utils/fold.h:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - container
    - init
    - fold_fn
    argTypes:
    - C
    - A
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: raksha::common::utils::fold
    functionSourceFile: /src/raksha/src/common/utils/fold.h
    functionUses: 15
    functionsReached:
    - std::begin
    - std::end
    - std::forward<F>
    - std::forward<A>
    - raksha::common::utils::fold
    linkageType: ''
    returnType: A
    signature: A fold(const C &container, A &&init, F &&fold_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/common/utils/fold.h:60,1
    - Dst: std::rbegin
      Src: /src/raksha/src/common/utils/fold.h:60,1
    - Dst: std::rend
      Src: /src/raksha/src/common/utils/fold.h:60,1
    - Dst: std::forward<A>
      Src: /src/raksha/src/common/utils/fold.h:61,1
    - Dst: std::forward<F>
      Src: /src/raksha/src/common/utils/fold.h:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - container
    - init
    - fold_fn
    argTypes:
    - C
    - A
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: raksha::common::utils::rfold
    functionSourceFile: /src/raksha/src/common/utils/fold.h
    functionUses: 0
    functionsReached:
    - std::rbegin
    - std::forward<F>
    - std::forward<A>
    - raksha::common::utils::fold
    - std::rend
    linkageType: ''
    returnType: A
    signature: A rfold(const C &container, A &&init, F &&fold_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/common/utils/fold_test.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/fold_test.cc:34,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/common/utils/fold_test.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/fold_test.cc:35,1
    - Dst: raksha::common::utils::rfold
      Src: /src/raksha/src/common/utils/fold_test.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: raksha::common::utils::TEST_P
    functionSourceFile: /src/raksha/src/common/utils/fold_test.cc
    functionUses: 0
    functionsReached:
    - raksha::common::utils::fold
    - EXPECT_EQ
    - raksha::common::utils::rfold
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(SumFoldTest, SumFoldTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/common/utils/fold_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/fold_test.cc:63,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/common/utils/fold_test.cc:63,1
    - Dst: std::string
      Src: /src/raksha/src/common/utils/fold_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/fold_test.cc:64,1
    - Dst: raksha::common::utils::rfold
      Src: /src/raksha/src/common/utils/fold_test.cc:64,1
    - Dst: std::string
      Src: /src/raksha/src/common/utils/fold_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: raksha::common::utils::TEST_P
    functionSourceFile: /src/raksha/src/common/utils/fold_test.cc
    functionUses: 0
    functionsReached:
    - GetParam
    - EXPECT_EQ
    - raksha::common::utils::fold
    - std::string
    - raksha::common::utils::rfold
    linkageType: ''
    returnType: void
    signature: void TEST_P(ConcatFoldTest, ConcatFoldTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/common/utils/fold_test.cc:87,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/common/utils/fold_test.cc:89,1
    - Dst: std::vector<std::unique_ptr<std::string>>
      Src: /src/raksha/src/common/utils/fold_test.cc:89,1
    - Dst: push_back
      Src: /src/raksha/src/common/utils/fold_test.cc:92,1
    - Dst: std::make_unique<std::string>
      Src: /src/raksha/src/common/utils/fold_test.cc:92,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/common/utils/fold_test.cc:96,1
    - Dst: std::vector<std::string>
      Src: /src/raksha/src/common/utils/fold_test.cc:96,1
    - Dst: push_back
      Src: /src/raksha/src/common/utils/fold_test.cc:99,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/fold_test.cc:102,1
    - Dst: testing::ElementsAreArray
      Src: /src/raksha/src/common/utils/fold_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 103
    functionName: raksha::common::utils::TEST_P
    functionSourceFile: /src/raksha/src/common/utils/fold_test.cc
    functionUses: 0
    functionsReached:
    - GetParam
    - std::make_unique<std::string>
    - testing::ElementsAreArray
    - raksha::common::utils::fold
    - EXPECT_THAT
    - std::vector<std::string>
    - std::vector<std::unique_ptr<std::string>>
    - push_back
    linkageType: ''
    returnType: void
    signature: void TEST_P(BoxFoldTest, BoxFoldTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/common/utils/fold_test.cc:117,1
    - Dst: data
      Src: /src/raksha/src/common/utils/fold_test.cc:118,1
    - Dst: data
      Src: /src/raksha/src/common/utils/fold_test.cc:119,1
    - Dst: size
      Src: /src/raksha/src/common/utils/fold_test.cc:119,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/fold_test.cc:121,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/common/utils/fold_test.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: raksha::common::utils::TEST_P
    functionSourceFile: /src/raksha/src/common/utils/fold_test.cc
    functionUses: 0
    functionsReached:
    - data
    - raksha::common::utils::fold
    - EXPECT_THAT
    - size
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(RawPointerFoldTest, RawPointerFoldTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/common/utils/fold_test.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/fold_test.cc:34,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/common/utils/fold_test.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/fold_test.cc:35,1
    - Dst: raksha::common::utils::rfold
      Src: /src/raksha/src/common/utils/fold_test.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: raksha::common::utils::TEST_P
    functionSourceFile: /src/raksha/src/common/utils/fold_test.cc
    functionUses: 0
    functionsReached:
    - raksha::common::utils::fold
    - EXPECT_EQ
    - raksha::common::utils::rfold
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(SumFoldTest, SumFoldTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/common/utils/fold_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/fold_test.cc:63,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/common/utils/fold_test.cc:63,1
    - Dst: std::string
      Src: /src/raksha/src/common/utils/fold_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/fold_test.cc:64,1
    - Dst: raksha::common::utils::rfold
      Src: /src/raksha/src/common/utils/fold_test.cc:64,1
    - Dst: std::string
      Src: /src/raksha/src/common/utils/fold_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: raksha::common::utils::TEST_P
    functionSourceFile: /src/raksha/src/common/utils/fold_test.cc
    functionUses: 0
    functionsReached:
    - GetParam
    - EXPECT_EQ
    - raksha::common::utils::fold
    - std::string
    - raksha::common::utils::rfold
    linkageType: ''
    returnType: void
    signature: void TEST_P(ConcatFoldTest, ConcatFoldTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/common/utils/fold_test.cc:87,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/common/utils/fold_test.cc:89,1
    - Dst: std::vector<std::unique_ptr<std::string>>
      Src: /src/raksha/src/common/utils/fold_test.cc:89,1
    - Dst: push_back
      Src: /src/raksha/src/common/utils/fold_test.cc:92,1
    - Dst: std::make_unique<std::string>
      Src: /src/raksha/src/common/utils/fold_test.cc:92,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/common/utils/fold_test.cc:96,1
    - Dst: std::vector<std::string>
      Src: /src/raksha/src/common/utils/fold_test.cc:96,1
    - Dst: push_back
      Src: /src/raksha/src/common/utils/fold_test.cc:99,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/fold_test.cc:102,1
    - Dst: testing::ElementsAreArray
      Src: /src/raksha/src/common/utils/fold_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 103
    functionName: raksha::common::utils::TEST_P
    functionSourceFile: /src/raksha/src/common/utils/fold_test.cc
    functionUses: 0
    functionsReached:
    - GetParam
    - std::make_unique<std::string>
    - testing::ElementsAreArray
    - raksha::common::utils::fold
    - EXPECT_THAT
    - std::vector<std::string>
    - std::vector<std::unique_ptr<std::string>>
    - push_back
    linkageType: ''
    returnType: void
    signature: void TEST_P(BoxFoldTest, BoxFoldTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/common/utils/fold_test.cc:117,1
    - Dst: data
      Src: /src/raksha/src/common/utils/fold_test.cc:118,1
    - Dst: data
      Src: /src/raksha/src/common/utils/fold_test.cc:119,1
    - Dst: size
      Src: /src/raksha/src/common/utils/fold_test.cc:119,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/fold_test.cc:121,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/common/utils/fold_test.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: raksha::common::utils::TEST_P
    functionSourceFile: /src/raksha/src/common/utils/fold_test.cc
    functionUses: 0
    functionsReached:
    - data
    - raksha::common::utils::fold
    - EXPECT_THAT
    - size
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(RawPointerFoldTest, RawPointerFoldTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/common/utils/overloaded_test.cc:32,1
    - Dst: std::visit
      Src: /src/raksha/src/common/utils/overloaded_test.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/overloaded_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: raksha::utils::TEST_P
    functionSourceFile: /src/raksha/src/common/utils/overloaded_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::visit
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(OverloadedTest, DispatchesToCorrectType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/common/utils/overloaded_test.cc:32,1
    - Dst: std::visit
      Src: /src/raksha/src/common/utils/overloaded_test.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/overloaded_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: raksha::utils::TEST_P
    functionSourceFile: /src/raksha/src/common/utils/overloaded_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::visit
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(OverloadedTest, DispatchesToCorrectType)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: raksha::RefCountedType::GetDestructorCalls
    functionSourceFile: /src/raksha/src/common/utils/ref_counted_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned GetDestructorCalls()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: raksha::RefCountedType::ResetDestructorCalls
    functionSourceFile: /src/raksha/src/common/utils/ref_counted_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetDestructorCalls()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: ~RefCountedType()
    functionSourceFile: /src/raksha/src/common/utils/ref_counted_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RefCountedType()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RefCountedType*::Retain
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - RefCountedType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: raksha::RefCountManager<RefCountedType>::Retain
    functionSourceFile: /src/raksha/src/common/utils/ref_counted_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedType*::Retain
    linkageType: ''
    returnType: void
    signature: void Retain(RefCountedType* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RefCountedType*::Release
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - RefCountedType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: raksha::RefCountManager<RefCountedType>::Release
    functionSourceFile: /src/raksha/src/common/utils/ref_counted_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedType*::Release
    linkageType: ''
    returnType: void
    signature: void Release(RefCountedType* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RefCountedType::RefCountedType
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:48,1
    - Dst: raksha::RefCountedType::ResetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:50,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:50,1
    - Dst: raksha::RefCountManager<RefCountedType>::Retain
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:51,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:52,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:52,1
    - Dst: raksha::RefCountManager<RefCountedType>::Retain
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:53,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:54,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:54,1
    - Dst: raksha::RefCountManager<RefCountedType>::Release
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:56,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:56,1
    - Dst: raksha::RefCountManager<RefCountedType>::Retain
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:58,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:58,1
    - Dst: raksha::RefCountManager<RefCountedType>::Release
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:60,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:60,1
    - Dst: raksha::RefCountManager<RefCountedType>::Release
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:62,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 63
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/ref_counted_test.cc
    functionUses: 0
    functionsReached:
    - raksha::RefCountManager<RefCountedType>::Retain
    - EXPECT_EQ
    - raksha::RefCountManager<RefCountedType>::Release
    - RefCountedType::RefCountedType
    - raksha::RefCountedType::ResetDestructorCalls
    - raksha::RefCountedType::GetDestructorCalls
    linkageType: ''
    returnType: void
    signature: void TEST(RefCountedTest, CallsDestructorOnlyWhenRefCountIsZero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:66,1
    - Dst: raksha::RefCountManager<RefCountedType>::Release
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/ref_counted_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - raksha::RefCountManager<RefCountedType>::Release
    linkageType: ''
    returnType: void
    signature: void TEST(RefCountedTest, FailsWhenReleaseCalledOnZeroRefCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RefCountedType::RefCountedType
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:48,1
    - Dst: raksha::RefCountedType::ResetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:50,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:50,1
    - Dst: raksha::RefCountManager<RefCountedType>::Retain
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:51,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:52,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:52,1
    - Dst: raksha::RefCountManager<RefCountedType>::Retain
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:53,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:54,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:54,1
    - Dst: raksha::RefCountManager<RefCountedType>::Release
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:56,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:56,1
    - Dst: raksha::RefCountManager<RefCountedType>::Retain
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:58,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:58,1
    - Dst: raksha::RefCountManager<RefCountedType>::Release
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:60,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:60,1
    - Dst: raksha::RefCountManager<RefCountedType>::Release
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:62,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 63
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/ref_counted_test.cc
    functionUses: 0
    functionsReached:
    - raksha::RefCountManager<RefCountedType>::Retain
    - EXPECT_EQ
    - raksha::RefCountManager<RefCountedType>::Release
    - RefCountedType::RefCountedType
    - raksha::RefCountedType::ResetDestructorCalls
    - raksha::RefCountedType::GetDestructorCalls
    linkageType: ''
    returnType: void
    signature: void TEST(RefCountedTest, CallsDestructorOnlyWhenRefCountIsZero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:66,1
    - Dst: raksha::RefCountManager<RefCountedType>::Release
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/ref_counted_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - raksha::RefCountManager<RefCountedType>::Release
    linkageType: ''
    returnType: void
    signature: void TEST(RefCountedTest, FailsWhenReleaseCalledOnZeroRefCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: raksha::RefCountedType::GetDestructorCalls
    functionSourceFile: /src/raksha/src/common/utils/ref_counted_test.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned GetDestructorCalls()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: raksha::RefCountedType::ResetDestructorCalls
    functionSourceFile: /src/raksha/src/common/utils/ref_counted_test.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetDestructorCalls()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: ~RefCountedType()
    functionSourceFile: /src/raksha/src/common/utils/ref_counted_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RefCountedType()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RefCountedType*::Retain
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - RefCountedType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: raksha::RefCountManager<RefCountedType>::Retain
    functionSourceFile: /src/raksha/src/common/utils/ref_counted_test.cc
    functionUses: 2
    functionsReached:
    - RefCountedType*::Retain
    linkageType: ''
    returnType: void
    signature: void Retain(RefCountedType* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RefCountedType*::Release
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - RefCountedType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: raksha::RefCountManager<RefCountedType>::Release
    functionSourceFile: /src/raksha/src/common/utils/ref_counted_test.cc
    functionUses: 4
    functionsReached:
    - RefCountedType*::Release
    linkageType: ''
    returnType: void
    signature: void Release(RefCountedType* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RefCountedType::RefCountedType
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:48,1
    - Dst: raksha::RefCountedType::ResetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:50,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:50,1
    - Dst: raksha::RefCountManager<RefCountedType>::Retain
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:51,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:52,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:52,1
    - Dst: raksha::RefCountManager<RefCountedType>::Retain
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:53,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:54,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:54,1
    - Dst: raksha::RefCountManager<RefCountedType>::Release
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:56,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:56,1
    - Dst: raksha::RefCountManager<RefCountedType>::Retain
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:58,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:58,1
    - Dst: raksha::RefCountManager<RefCountedType>::Release
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:60,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:60,1
    - Dst: raksha::RefCountManager<RefCountedType>::Release
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:62,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 63
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/ref_counted_test.cc
    functionUses: 0
    functionsReached:
    - raksha::RefCountManager<RefCountedType>::Retain
    - EXPECT_EQ
    - raksha::RefCountManager<RefCountedType>::Release
    - RefCountedType::RefCountedType
    - raksha::RefCountedType::ResetDestructorCalls
    - raksha::RefCountedType::GetDestructorCalls
    linkageType: ''
    returnType: void
    signature: void TEST(RefCountedTest, CallsDestructorOnlyWhenRefCountIsZero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:66,1
    - Dst: raksha::RefCountManager<RefCountedType>::Release
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/ref_counted_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - raksha::RefCountManager<RefCountedType>::Release
    linkageType: ''
    returnType: void
    signature: void TEST(RefCountedTest, FailsWhenReleaseCalledOnZeroRefCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RefCountedType::RefCountedType
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:48,1
    - Dst: raksha::RefCountedType::ResetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:50,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:50,1
    - Dst: raksha::RefCountManager<RefCountedType>::Retain
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:51,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:52,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:52,1
    - Dst: raksha::RefCountManager<RefCountedType>::Retain
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:53,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:54,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:54,1
    - Dst: raksha::RefCountManager<RefCountedType>::Release
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:56,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:56,1
    - Dst: raksha::RefCountManager<RefCountedType>::Retain
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:58,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:58,1
    - Dst: raksha::RefCountManager<RefCountedType>::Release
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:60,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:60,1
    - Dst: raksha::RefCountManager<RefCountedType>::Release
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:62,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 63
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/ref_counted_test.cc
    functionUses: 0
    functionsReached:
    - raksha::RefCountManager<RefCountedType>::Retain
    - EXPECT_EQ
    - raksha::RefCountManager<RefCountedType>::Release
    - RefCountedType::RefCountedType
    - raksha::RefCountedType::ResetDestructorCalls
    - raksha::RefCountedType::GetDestructorCalls
    linkageType: ''
    returnType: void
    signature: void TEST(RefCountedTest, CallsDestructorOnlyWhenRefCountIsZero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:66,1
    - Dst: raksha::RefCountManager<RefCountedType>::Release
      Src: /src/raksha/src/common/utils/ref_counted_test.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/ref_counted_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - raksha::RefCountManager<RefCountedType>::Release
    linkageType: ''
    returnType: void
    signature: void TEST(RefCountedTest, FailsWhenReleaseCalledOnZeroRefCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T*::Retain
      Src: /src/raksha/src/common/utils/ref_counted.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: raksha::RefCountManager::Retain
    functionSourceFile: /src/raksha/src/common/utils/ref_counted.h
    functionUses: 0
    functionsReached:
    - T*::Retain
    linkageType: ''
    returnType: void
    signature: void Retain(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T*::Release
      Src: /src/raksha/src/common/utils/ref_counted.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::RefCountManager::Release
    functionSourceFile: /src/raksha/src/common/utils/ref_counted.h
    functionUses: 0
    functionsReached:
    - T*::Release
    linkageType: ''
    returnType: void
    signature: void Release(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: raksha::RefCounted::RefCounted
    functionSourceFile: /src/raksha/src/common/utils/ref_counted.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RefCounted()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RefCounted
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: raksha::RefCounted::RefCounted
    functionSourceFile: /src/raksha/src/common/utils/ref_counted.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RefCounted(const RefCounted& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RefCounted
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: raksha::RefCounted::RefCounted
    functionSourceFile: /src/raksha/src/common/utils/ref_counted.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RefCounted(const RefCounted&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: '& operator=(const RefCounted&)'
    functionSourceFile: /src/raksha/src/common/utils/ref_counted.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RefCounted
    signature: RefCounted & operator=(const RefCounted&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: '& operator=(RefCounted&&)'
    functionSourceFile: /src/raksha/src/common/utils/ref_counted.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RefCounted
    signature: RefCounted & operator=(RefCounted&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FetchAdd
      Src: /src/raksha/src/common/utils/ref_counted.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: raksha::RefCounted::Retain
    functionSourceFile: /src/raksha/src/common/utils/ref_counted.h
    functionUses: 0
    functionsReached:
    - FetchAdd
    linkageType: ''
    returnType: void
    signature: void Retain() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FetchSub
      Src: /src/raksha/src/common/utils/ref_counted.h:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: raksha::RefCounted::Release
    functionSourceFile: /src/raksha/src/common/utils/ref_counted.h
    functionUses: 0
    functionsReached:
    - FetchSub
    linkageType: ''
    returnType: void
    signature: void Release() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: ~RefCounted()
    functionSourceFile: /src/raksha/src/common/utils/ref_counted.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RefCounted()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T*::Retain
      Src: /src/raksha/src/common/utils/ref_counted.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: raksha::RefCountManager::Retain
    functionSourceFile: /src/raksha/src/common/utils/ref_counted.h
    functionUses: 0
    functionsReached:
    - T*::Retain
    linkageType: ''
    returnType: void
    signature: void Retain(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T*::Release
      Src: /src/raksha/src/common/utils/ref_counted.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::RefCountManager::Release
    functionSourceFile: /src/raksha/src/common/utils/ref_counted.h
    functionUses: 0
    functionsReached:
    - T*::Release
    linkageType: ''
    returnType: void
    signature: void Release(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: raksha::RefCounted::RefCounted
    functionSourceFile: /src/raksha/src/common/utils/ref_counted.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RefCounted()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RefCounted
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: raksha::RefCounted::RefCounted
    functionSourceFile: /src/raksha/src/common/utils/ref_counted.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RefCounted(const RefCounted& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RefCounted
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: raksha::RefCounted::RefCounted
    functionSourceFile: /src/raksha/src/common/utils/ref_counted.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RefCounted(const RefCounted&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: '& operator=(const RefCounted&)'
    functionSourceFile: /src/raksha/src/common/utils/ref_counted.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RefCounted
    signature: RefCounted & operator=(const RefCounted&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: '& operator=(RefCounted&&)'
    functionSourceFile: /src/raksha/src/common/utils/ref_counted.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RefCounted
    signature: RefCounted & operator=(RefCounted&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FetchAdd
      Src: /src/raksha/src/common/utils/ref_counted.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: raksha::RefCounted::Retain
    functionSourceFile: /src/raksha/src/common/utils/ref_counted.h
    functionUses: 0
    functionsReached:
    - FetchAdd
    linkageType: ''
    returnType: void
    signature: void Retain() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FetchSub
      Src: /src/raksha/src/common/utils/ref_counted.h:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: raksha::RefCounted::Release
    functionSourceFile: /src/raksha/src/common/utils/ref_counted.h
    functionUses: 0
    functionsReached:
    - FetchSub
    linkageType: ''
    returnType: void
    signature: void Release() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: ~RefCounted()
    functionSourceFile: /src/raksha/src/common/utils/ref_counted.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RefCounted()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: raksha::RefCountedType::RefCountedType
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RefCountedType(std::string id = "<unknown>", bool some_flag =
      false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: raksha::RefCountedType::count
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::RefCountedType::some_flag
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool some_flag() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: raksha::RefCountedType::set_id
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: void
    signature: void set_id(std::string id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: '& id() const'
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::RefCountedType::Retain
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Retain()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: raksha::RefCountedType::Release
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Release()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RefCountedType::RefCountedType
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: raksha::MakeRefCountedTypeInstance
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedType::RefCountedType
    linkageType: ''
    returnType: RefCountedType
    signature: "RefCountedType * MakeRefCountedTypeInstance(std::string id = \"<unknown>\",\n
      \                                          bool some_flag = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:63,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedTypePtr::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, DefaultConstructorInitializesToNullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:68,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:70,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:72,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedTypePtr::get
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    - RefCountedType*::count
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, ConstructorIncreasesCountAndSavesPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:78,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:80,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:83,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:84,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:84,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedTypePtr::get
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    - RefCountedType*::count
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, CopyConstructorIncreasesCountAndSharesPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:91,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:93,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:93,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:96,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:97,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    - RefCountedType*::count
    - std::move
    - RefCountedTypePtr::get
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, MoveConstructorMaintainsCountAndNullifiesOther)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:103,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:105,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:108,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:111,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:112,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:112,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 115
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedTypePtr::get
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    - RefCountedType*::count
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, AssignmentIncreasesCountAndSharesPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:118,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:120,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedTypePtr::get
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, GetReturnsSavedPointer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, DereferenceReturnsSavedObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:135,1
    - Dst: count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 138
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - EXPECT_EQ
    - count
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, DereferencingNullCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:143,1
    - Dst: auto::id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:143,1
    - Dst: RefCountedTypePtr::set_id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:145,1
    - Dst: auto::id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 147
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - auto::id
    - EXPECT_EQ
    - RefCountedTypePtr::set_id
    - raksha::MakeRefCountedTypeInstance
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, ArrowOperatorProvidesAccessToSavedPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:152,1
    - Dst: raksha::intrusive_ptr::create
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:153,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:154,1
    - Dst: auto::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:154,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:155,1
    - Dst: auto::id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:155,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:156,1
    - Dst: auto::some_flag
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:156,1
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:159,1
    - Dst: raksha::intrusive_ptr::create
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:161,1
    - Dst: auto::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:161,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:162,1
    - Dst: auto::id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:162,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:163,1
    - Dst: auto::some_flag
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:163,1
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:167,1
    - Dst: raksha::intrusive_ptr::create
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:168,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:169,1
    - Dst: auto::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:169,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:170,1
    - Dst: auto::id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:171,1
    - Dst: auto::some_flag
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:171,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:172,1
    - Dst: auto::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:172,1
    - Dst: auto::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 175
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - auto::count
    - auto::id
    - auto::get
    - raksha::make_intrusive_ptr
    - raksha::intrusive_ptr::create
    - EXPECT_NE
    - auto::some_flag
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, FactoryConstructionWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:179,1
    - Dst: auto::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:179,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:181,1
    - Dst: auto::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:181,1
    - Dst: intrusive_ptr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:181,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:182,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:183,1
    - Dst: auto::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:183,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:184,1
    - Dst: intrusive_ptr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:184,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 188
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - intrusive_ptr::get
    - EXPECT_EQ
    - auto::count
    - auto::get
    - intrusive_ptr::count
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, CanConvertBetweenConvertiblePtrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:191,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:192,1
    - Dst: RefCountedTypePtr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:192,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:195,1
    - Dst: RefCountedTypePtr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:195,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:198,1
    - Dst: RefCountedTypePtr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:202,1
    - Dst: RefCountedTypePtr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:202,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:205,1
    - Dst: RefCountedTypePtr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 206
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - RefCountedTypePtr::count
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, DestructorReducesCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:212,1
    - Dst: intrusive_ptr<RefCountedType>
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:214,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 216
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::make_intrusive_ptr
    - intrusive_ptr<RefCountedType>
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, EqualReturnsTrueForIdenticalPtrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:220,1
    - Dst: intrusive_ptr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - intrusive_ptr::get
    - EXPECT_EQ
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, ComparePtrsOfDifferentTypes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:226,1
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:227,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, NotEqualReturnsTrueDifferentPtrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:234,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:235,1
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:237,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:239,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 241
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_NE
    - raksha::MakeRefCountedTypeInstance
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, ComparisionAgainstRawPtrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:244,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:246,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:247,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 250
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_NE
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, ComparisionAgainstNullPtrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:253,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:254,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrBoolConversionTest, IntrusivePtrBoolConversionTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: raksha::RefCountedType::RefCountedType
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RefCountedType(std::string id = "<unknown>", bool some_flag =
      false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: raksha::RefCountedType::count
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::RefCountedType::some_flag
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool some_flag() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: raksha::RefCountedType::set_id
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: void
    signature: void set_id(std::string id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: '& id() const'
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::RefCountedType::Retain
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Retain()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: raksha::RefCountedType::Release
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Release()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RefCountedType::RefCountedType
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: raksha::MakeRefCountedTypeInstance
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 8
    functionsReached:
    - RefCountedType::RefCountedType
    linkageType: ''
    returnType: RefCountedType
    signature: "RefCountedType * MakeRefCountedTypeInstance(std::string id = \"<unknown>\",\n
      \                                          bool some_flag = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:63,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedTypePtr::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, DefaultConstructorInitializesToNullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:68,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:70,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:72,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedTypePtr::get
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    - RefCountedType*::count
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, ConstructorIncreasesCountAndSavesPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:78,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:80,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:83,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:84,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:84,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedTypePtr::get
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    - RefCountedType*::count
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, CopyConstructorIncreasesCountAndSharesPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:91,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:93,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:93,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:96,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:97,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    - RefCountedType*::count
    - std::move
    - RefCountedTypePtr::get
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, MoveConstructorMaintainsCountAndNullifiesOther)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:103,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:105,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:108,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:111,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:112,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:112,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 115
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedTypePtr::get
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    - RefCountedType*::count
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, AssignmentIncreasesCountAndSharesPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:118,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:120,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedTypePtr::get
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, GetReturnsSavedPointer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, DereferenceReturnsSavedObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:135,1
    - Dst: count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 138
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - EXPECT_EQ
    - count
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, DereferencingNullCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:143,1
    - Dst: auto::id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:143,1
    - Dst: RefCountedTypePtr::set_id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:145,1
    - Dst: auto::id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 147
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - auto::id
    - EXPECT_EQ
    - RefCountedTypePtr::set_id
    - raksha::MakeRefCountedTypeInstance
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, ArrowOperatorProvidesAccessToSavedPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:152,1
    - Dst: raksha::intrusive_ptr::create
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:153,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:154,1
    - Dst: auto::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:154,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:155,1
    - Dst: auto::id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:155,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:156,1
    - Dst: auto::some_flag
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:156,1
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:159,1
    - Dst: raksha::intrusive_ptr::create
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:161,1
    - Dst: auto::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:161,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:162,1
    - Dst: auto::id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:162,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:163,1
    - Dst: auto::some_flag
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:163,1
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:167,1
    - Dst: raksha::intrusive_ptr::create
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:168,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:169,1
    - Dst: auto::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:169,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:170,1
    - Dst: auto::id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:171,1
    - Dst: auto::some_flag
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:171,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:172,1
    - Dst: auto::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:172,1
    - Dst: auto::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 175
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - auto::count
    - auto::id
    - auto::get
    - raksha::make_intrusive_ptr
    - raksha::intrusive_ptr::create
    - EXPECT_NE
    - auto::some_flag
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, FactoryConstructionWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:179,1
    - Dst: auto::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:179,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:181,1
    - Dst: auto::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:181,1
    - Dst: intrusive_ptr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:181,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:182,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:183,1
    - Dst: auto::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:183,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:184,1
    - Dst: intrusive_ptr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:184,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 188
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - intrusive_ptr::get
    - EXPECT_EQ
    - auto::count
    - auto::get
    - intrusive_ptr::count
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, CanConvertBetweenConvertiblePtrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:191,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:192,1
    - Dst: RefCountedTypePtr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:192,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:195,1
    - Dst: RefCountedTypePtr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:195,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:198,1
    - Dst: RefCountedTypePtr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:202,1
    - Dst: RefCountedTypePtr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:202,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:205,1
    - Dst: RefCountedTypePtr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 206
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - RefCountedTypePtr::count
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, DestructorReducesCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:212,1
    - Dst: intrusive_ptr<RefCountedType>
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:214,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 216
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::make_intrusive_ptr
    - intrusive_ptr<RefCountedType>
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, EqualReturnsTrueForIdenticalPtrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:220,1
    - Dst: intrusive_ptr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - intrusive_ptr::get
    - EXPECT_EQ
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, ComparePtrsOfDifferentTypes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:226,1
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:227,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, NotEqualReturnsTrueDifferentPtrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:234,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:235,1
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:237,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:239,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 241
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_NE
    - raksha::MakeRefCountedTypeInstance
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, ComparisionAgainstRawPtrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:244,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:246,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:247,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 250
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_NE
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, ComparisionAgainstNullPtrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:253,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:254,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrBoolConversionTest, IntrusivePtrBoolConversionTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: raksha::RefCountedType::RefCountedType
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RefCountedType(std::string id = "<unknown>", bool some_flag =
      false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: raksha::RefCountedType::count
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::RefCountedType::some_flag
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool some_flag() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: raksha::RefCountedType::set_id
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: void
    signature: void set_id(std::string id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: '& id() const'
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::RefCountedType::Retain
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Retain()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: raksha::RefCountedType::Release
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Release()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RefCountedType::RefCountedType
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: raksha::MakeRefCountedTypeInstance
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 16
    functionsReached:
    - RefCountedType::RefCountedType
    linkageType: ''
    returnType: RefCountedType
    signature: "RefCountedType * MakeRefCountedTypeInstance(std::string id = \"<unknown>\",\n
      \                                          bool some_flag = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:63,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedTypePtr::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, DefaultConstructorInitializesToNullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:68,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:70,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:72,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedTypePtr::get
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    - RefCountedType*::count
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, ConstructorIncreasesCountAndSavesPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:78,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:80,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:83,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:84,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:84,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedTypePtr::get
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    - RefCountedType*::count
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, CopyConstructorIncreasesCountAndSharesPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:91,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:93,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:93,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:96,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:97,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    - RefCountedType*::count
    - std::move
    - RefCountedTypePtr::get
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, MoveConstructorMaintainsCountAndNullifiesOther)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:103,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:105,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:108,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:111,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:112,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:112,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 115
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedTypePtr::get
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    - RefCountedType*::count
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, AssignmentIncreasesCountAndSharesPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:118,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:120,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedTypePtr::get
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, GetReturnsSavedPointer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, DereferenceReturnsSavedObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:135,1
    - Dst: count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 138
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - EXPECT_EQ
    - count
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, DereferencingNullCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:143,1
    - Dst: auto::id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:143,1
    - Dst: RefCountedTypePtr::set_id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:145,1
    - Dst: auto::id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 147
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - auto::id
    - EXPECT_EQ
    - RefCountedTypePtr::set_id
    - raksha::MakeRefCountedTypeInstance
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, ArrowOperatorProvidesAccessToSavedPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:152,1
    - Dst: raksha::intrusive_ptr::create
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:153,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:154,1
    - Dst: auto::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:154,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:155,1
    - Dst: auto::id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:155,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:156,1
    - Dst: auto::some_flag
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:156,1
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:159,1
    - Dst: raksha::intrusive_ptr::create
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:161,1
    - Dst: auto::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:161,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:162,1
    - Dst: auto::id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:162,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:163,1
    - Dst: auto::some_flag
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:163,1
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:167,1
    - Dst: raksha::intrusive_ptr::create
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:168,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:169,1
    - Dst: auto::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:169,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:170,1
    - Dst: auto::id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:171,1
    - Dst: auto::some_flag
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:171,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:172,1
    - Dst: auto::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:172,1
    - Dst: auto::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 175
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - auto::count
    - auto::id
    - auto::get
    - raksha::make_intrusive_ptr
    - raksha::intrusive_ptr::create
    - EXPECT_NE
    - auto::some_flag
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, FactoryConstructionWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:179,1
    - Dst: auto::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:179,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:181,1
    - Dst: auto::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:181,1
    - Dst: intrusive_ptr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:181,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:182,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:183,1
    - Dst: auto::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:183,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:184,1
    - Dst: intrusive_ptr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:184,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 188
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - intrusive_ptr::get
    - EXPECT_EQ
    - auto::count
    - auto::get
    - intrusive_ptr::count
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, CanConvertBetweenConvertiblePtrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:191,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:192,1
    - Dst: RefCountedTypePtr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:192,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:195,1
    - Dst: RefCountedTypePtr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:195,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:198,1
    - Dst: RefCountedTypePtr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:202,1
    - Dst: RefCountedTypePtr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:202,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:205,1
    - Dst: RefCountedTypePtr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 206
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - RefCountedTypePtr::count
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, DestructorReducesCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:212,1
    - Dst: intrusive_ptr<RefCountedType>
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:214,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 216
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::make_intrusive_ptr
    - intrusive_ptr<RefCountedType>
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, EqualReturnsTrueForIdenticalPtrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:220,1
    - Dst: intrusive_ptr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - intrusive_ptr::get
    - EXPECT_EQ
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, ComparePtrsOfDifferentTypes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:226,1
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:227,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, NotEqualReturnsTrueDifferentPtrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:234,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:235,1
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:237,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:239,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 241
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_NE
    - raksha::MakeRefCountedTypeInstance
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, ComparisionAgainstRawPtrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:244,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:246,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:247,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 250
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_NE
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, ComparisionAgainstNullPtrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:253,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:254,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrBoolConversionTest, IntrusivePtrBoolConversionTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: raksha::RefCountedType::RefCountedType
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RefCountedType(std::string id = "<unknown>", bool some_flag =
      false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: raksha::RefCountedType::count
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::RefCountedType::some_flag
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool some_flag() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: raksha::RefCountedType::set_id
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - std::swap
    linkageType: ''
    returnType: void
    signature: void set_id(std::string id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: '& id() const'
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::RefCountedType::Retain
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Retain()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: raksha::RefCountedType::Release
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Release()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RefCountedType::RefCountedType
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: raksha::MakeRefCountedTypeInstance
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 24
    functionsReached:
    - RefCountedType::RefCountedType
    linkageType: ''
    returnType: RefCountedType
    signature: "RefCountedType * MakeRefCountedTypeInstance(std::string id = \"<unknown>\",\n
      \                                          bool some_flag = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:63,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedTypePtr::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, DefaultConstructorInitializesToNullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:68,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:70,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:72,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedTypePtr::get
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    - RefCountedType*::count
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, ConstructorIncreasesCountAndSavesPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:78,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:80,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:83,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:84,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:84,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedTypePtr::get
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    - RefCountedType*::count
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, CopyConstructorIncreasesCountAndSharesPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:91,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:93,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:93,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:96,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:97,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    - RefCountedType*::count
    - std::move
    - RefCountedTypePtr::get
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, MoveConstructorMaintainsCountAndNullifiesOther)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:103,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:105,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:108,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:111,1
    - Dst: RefCountedType*::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:112,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:112,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 115
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedTypePtr::get
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    - RefCountedType*::count
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, AssignmentIncreasesCountAndSharesPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:118,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:120,1
    - Dst: RefCountedTypePtr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - RefCountedTypePtr::get
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, GetReturnsSavedPointer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::MakeRefCountedTypeInstance
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, DereferenceReturnsSavedObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:135,1
    - Dst: count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 138
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - EXPECT_EQ
    - count
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, DereferencingNullCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:143,1
    - Dst: auto::id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:143,1
    - Dst: RefCountedTypePtr::set_id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:145,1
    - Dst: auto::id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 147
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - auto::id
    - EXPECT_EQ
    - RefCountedTypePtr::set_id
    - raksha::MakeRefCountedTypeInstance
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, ArrowOperatorProvidesAccessToSavedPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:152,1
    - Dst: raksha::intrusive_ptr::create
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:153,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:154,1
    - Dst: auto::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:154,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:155,1
    - Dst: auto::id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:155,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:156,1
    - Dst: auto::some_flag
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:156,1
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:159,1
    - Dst: raksha::intrusive_ptr::create
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:161,1
    - Dst: auto::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:161,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:162,1
    - Dst: auto::id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:162,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:163,1
    - Dst: auto::some_flag
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:163,1
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:167,1
    - Dst: raksha::intrusive_ptr::create
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:168,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:169,1
    - Dst: auto::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:169,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:170,1
    - Dst: auto::id
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:171,1
    - Dst: auto::some_flag
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:171,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:172,1
    - Dst: auto::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:172,1
    - Dst: auto::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 175
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - auto::count
    - auto::id
    - auto::get
    - raksha::make_intrusive_ptr
    - raksha::intrusive_ptr::create
    - EXPECT_NE
    - auto::some_flag
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, FactoryConstructionWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:179,1
    - Dst: auto::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:179,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:181,1
    - Dst: auto::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:181,1
    - Dst: intrusive_ptr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:181,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:182,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:183,1
    - Dst: auto::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:183,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:184,1
    - Dst: intrusive_ptr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:184,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 188
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - intrusive_ptr::get
    - EXPECT_EQ
    - auto::count
    - auto::get
    - intrusive_ptr::count
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, CanConvertBetweenConvertiblePtrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:191,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:192,1
    - Dst: RefCountedTypePtr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:192,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:195,1
    - Dst: RefCountedTypePtr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:195,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:198,1
    - Dst: RefCountedTypePtr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:202,1
    - Dst: RefCountedTypePtr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:202,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:205,1
    - Dst: RefCountedTypePtr::count
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 206
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - RefCountedTypePtr::count
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, DestructorReducesCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:212,1
    - Dst: intrusive_ptr<RefCountedType>
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:214,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 216
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::make_intrusive_ptr
    - intrusive_ptr<RefCountedType>
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, EqualReturnsTrueForIdenticalPtrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:220,1
    - Dst: intrusive_ptr::get
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - intrusive_ptr::get
    - EXPECT_EQ
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, ComparePtrsOfDifferentTypes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:226,1
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:227,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, NotEqualReturnsTrueDifferentPtrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:234,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:235,1
    - Dst: raksha::MakeRefCountedTypeInstance
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:237,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:239,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 241
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_NE
    - raksha::MakeRefCountedTypeInstance
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, ComparisionAgainstRawPtrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:244,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:246,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:247,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 250
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_NE
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrTest, ComparisionAgainstNullPtrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:253,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:254,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/common/utils/intrusive_ptr_test.cc:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - raksha::make_intrusive_ptr
    linkageType: ''
    returnType: void
    signature: void TEST(IntrusivePtrBoolConversionTest, IntrusivePtrBoolConversionTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::MapIter
      Src: /src/raksha/src/common/utils/map_iter_test.cc:26,1
    - Dst: std::vector
      Src: /src/raksha/src/common/utils/map_iter_test.cc:26,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/map_iter_test.cc:28,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/common/utils/map_iter_test.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: raksha::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/map_iter_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::MapIter
    - EXPECT_THAT
    - testing::ElementsAre
    - std::vector
    linkageType: ''
    returnType: void
    signature: void TEST(MapIterTestSuite, SimpleMapIterTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::MapIter
      Src: /src/raksha/src/common/utils/map_iter_test.cc:32,1
    - Dst: std::deque
      Src: /src/raksha/src/common/utils/map_iter_test.cc:32,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/map_iter_test.cc:34,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/common/utils/map_iter_test.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: raksha::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/map_iter_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::MapIter
    - testing::ElementsAre
    - EXPECT_THAT
    - std::deque
    linkageType: ''
    returnType: void
    signature: void TEST(MapIterTestSuite, SimpleMapIterOnDequeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::MapIter
      Src: /src/raksha/src/common/utils/map_iter_test.cc:26,1
    - Dst: std::vector
      Src: /src/raksha/src/common/utils/map_iter_test.cc:26,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/map_iter_test.cc:28,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/common/utils/map_iter_test.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: raksha::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/map_iter_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::MapIter
    - EXPECT_THAT
    - testing::ElementsAre
    - std::vector
    linkageType: ''
    returnType: void
    signature: void TEST(MapIterTestSuite, SimpleMapIterTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::MapIter
      Src: /src/raksha/src/common/utils/map_iter_test.cc:32,1
    - Dst: std::deque
      Src: /src/raksha/src/common/utils/map_iter_test.cc:32,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/map_iter_test.cc:34,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/common/utils/map_iter_test.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: raksha::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/map_iter_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::MapIter
    - testing::ElementsAre
    - EXPECT_THAT
    - std::deque
    linkageType: ''
    returnType: void
    signature: void TEST(MapIterTestSuite, SimpleMapIterOnDequeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: '& operator++()'
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IteratorAdapter
    signature: IteratorAdapter & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: operator++(int)
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IteratorAdapter
    signature: IteratorAdapter operator++(int)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ValueAdapter
      Src: /src/raksha/src/common/utils/iterator_adapter.h:59,1
    - Dst: ValueAdapter
      Src: /src/raksha/src/common/utils/iterator_adapter.h:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: operator*() const
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter.h
    functionUses: 0
    functionsReached:
    - ValueAdapter
    linkageType: ''
    returnType: value_type
    signature: value_type operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Context
      Src: /src/raksha/src/common/utils/iterator_adapter.h:67,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_adapter.h:68,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_adapter.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - underlying_iterator
    argTypes:
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: raksha::utils::IteratorAdapter
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter.h
    functionUses: 0
    functionsReached:
    - Context
    - std::move
    linkageType: ''
    returnType: void
    signature: "void IteratorAdapter(Iterator underlying_iterator,\n                           Context
      context = Context())"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - IteratorAdapter<Iterator, ValueAdapter, Context>
    - IteratorAdapter<Iterator, ValueAdapter, Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: "operator==(\n    const IteratorAdapter<Iterator, ValueAdapter,
      Context>& lhs,\n    const IteratorAdapter<Iterator, ValueAdapter, Context>&
      rhs)"
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator==(\n    const IteratorAdapter<Iterator, ValueAdapter,
      Context>& lhs,\n    const IteratorAdapter<Iterator, ValueAdapter, Context>&
      rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - IteratorAdapter<Iterator, ValueAdapter, Context>
    - IteratorAdapter<Iterator, ValueAdapter, Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: "operator!=(\n    const IteratorAdapter<Iterator, ValueAdapter,
      Context>& lhs,\n    const IteratorAdapter<Iterator, ValueAdapter, Context>&
      rhs)"
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=(\n    const IteratorAdapter<Iterator, ValueAdapter,
      Context>& lhs,\n    const IteratorAdapter<Iterator, ValueAdapter, Context>&
      rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/common/utils/iterator_adapter.h:116,1
    - Dst: raksha::utils::IteratorAdapter
      Src: /src/raksha/src/common/utils/iterator_adapter.h:116,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_adapter.h:117,1
    - Dst: raksha::utils::IteratorAdapter
      Src: /src/raksha/src/common/utils/iterator_adapter.h:118,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_adapter.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - begin
    - end
    - context
    argTypes:
    - Iterator
    - Iterator
    - Context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: raksha::utils::make_adapted_range
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter.h
    functionUses: 12
    functionsReached:
    - raksha::utils::IteratorAdapter
    - std::move
    - raksha::utils::make_range
    linkageType: ''
    returnType: iterator_range<IteratorAdapter<Iterator, ValueAdapter, Context>>
    signature: iterator_range<IteratorAdapter<Iterator, ValueAdapter, Context>> make_adapted_range(Iterator
      begin, Iterator end, Context context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter.h:134,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_adapter.h:134,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_adapter.h:134,1
    - Dst: Unit
      Src: /src/raksha/src/common/utils/iterator_adapter.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - Iterator
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: raksha::utils::make_adapted_range
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter.h
    functionUses: 13
    functionsReached:
    - Unit
    - raksha::utils::make_adapted_range
    - std::move
    linkageType: ''
    returnType: iterator_range<IteratorAdapter<Iterator, ValueAdapter, Unit>>
    signature: iterator_range<IteratorAdapter<Iterator, ValueAdapter, Unit>> make_adapted_range(Iterator
      begin, Iterator end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter.h:150,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_adapter.h:151,1
    - Dst: begin
      Src: /src/raksha/src/common/utils/iterator_adapter.h:151,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_adapter.h:151,1
    - Dst: end
      Src: /src/raksha/src/common/utils/iterator_adapter.h:151,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_adapter.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' c'
    - context
    argTypes:
    - Container
    - Context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: raksha::utils::make_adapted_range
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter.h
    functionUses: 14
    functionsReached:
    - raksha::utils::make_adapted_range
    - std::move
    - begin
    - end
    linkageType: ''
    returnType: auto
    signature: auto make_adapted_range(const Container& c, Context context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter.h:166,1
    - Dst: Unit
      Src: /src/raksha/src/common/utils/iterator_adapter.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - Container
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: raksha::utils::make_adapted_range
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter.h
    functionUses: 15
    functionsReached:
    - raksha::utils::make_adapted_range
    - Unit
    linkageType: ''
    returnType: auto
    signature: auto make_adapted_range(const Container& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: '& operator++()'
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IteratorAdapter
    signature: IteratorAdapter & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: operator++(int)
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IteratorAdapter
    signature: IteratorAdapter operator++(int)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ValueAdapter
      Src: /src/raksha/src/common/utils/iterator_adapter.h:59,1
    - Dst: ValueAdapter
      Src: /src/raksha/src/common/utils/iterator_adapter.h:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: operator*() const
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter.h
    functionUses: 0
    functionsReached:
    - ValueAdapter
    linkageType: ''
    returnType: value_type
    signature: value_type operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Context
      Src: /src/raksha/src/common/utils/iterator_adapter.h:67,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_adapter.h:68,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_adapter.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - underlying_iterator
    argTypes:
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: raksha::utils::IteratorAdapter
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter.h
    functionUses: 1
    functionsReached:
    - Context
    - std::move
    linkageType: ''
    returnType: void
    signature: "void IteratorAdapter(Iterator underlying_iterator,\n                           Context
      context = Context())"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - IteratorAdapter<Iterator, ValueAdapter, Context>
    - IteratorAdapter<Iterator, ValueAdapter, Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: "operator==(\n    const IteratorAdapter<Iterator, ValueAdapter,
      Context>& lhs,\n    const IteratorAdapter<Iterator, ValueAdapter, Context>&
      rhs)"
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator==(\n    const IteratorAdapter<Iterator, ValueAdapter,
      Context>& lhs,\n    const IteratorAdapter<Iterator, ValueAdapter, Context>&
      rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - IteratorAdapter<Iterator, ValueAdapter, Context>
    - IteratorAdapter<Iterator, ValueAdapter, Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: "operator!=(\n    const IteratorAdapter<Iterator, ValueAdapter,
      Context>& lhs,\n    const IteratorAdapter<Iterator, ValueAdapter, Context>&
      rhs)"
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=(\n    const IteratorAdapter<Iterator, ValueAdapter,
      Context>& lhs,\n    const IteratorAdapter<Iterator, ValueAdapter, Context>&
      rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/common/utils/iterator_adapter.h:116,1
    - Dst: raksha::utils::IteratorAdapter
      Src: /src/raksha/src/common/utils/iterator_adapter.h:116,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_adapter.h:117,1
    - Dst: raksha::utils::IteratorAdapter
      Src: /src/raksha/src/common/utils/iterator_adapter.h:118,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_adapter.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - begin
    - end
    - context
    argTypes:
    - Iterator
    - Iterator
    - Context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: raksha::utils::make_adapted_range
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter.h
    functionUses: 15
    functionsReached:
    - raksha::utils::IteratorAdapter
    - std::move
    - raksha::utils::make_range
    linkageType: ''
    returnType: iterator_range<IteratorAdapter<Iterator, ValueAdapter, Context>>
    signature: iterator_range<IteratorAdapter<Iterator, ValueAdapter, Context>> make_adapted_range(Iterator
      begin, Iterator end, Context context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter.h:134,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_adapter.h:134,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_adapter.h:134,1
    - Dst: Unit
      Src: /src/raksha/src/common/utils/iterator_adapter.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - Iterator
    - Iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: raksha::utils::make_adapted_range
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter.h
    functionUses: 16
    functionsReached:
    - Unit
    - raksha::utils::make_adapted_range
    - std::move
    linkageType: ''
    returnType: iterator_range<IteratorAdapter<Iterator, ValueAdapter, Unit>>
    signature: iterator_range<IteratorAdapter<Iterator, ValueAdapter, Unit>> make_adapted_range(Iterator
      begin, Iterator end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter.h:150,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_adapter.h:151,1
    - Dst: begin
      Src: /src/raksha/src/common/utils/iterator_adapter.h:151,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_adapter.h:151,1
    - Dst: end
      Src: /src/raksha/src/common/utils/iterator_adapter.h:151,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/iterator_adapter.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' c'
    - context
    argTypes:
    - Container
    - Context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: raksha::utils::make_adapted_range
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter.h
    functionUses: 17
    functionsReached:
    - raksha::utils::make_adapted_range
    - std::move
    - begin
    - end
    linkageType: ''
    returnType: auto
    signature: auto make_adapted_range(const Container& c, Context context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::make_adapted_range
      Src: /src/raksha/src/common/utils/iterator_adapter.h:166,1
    - Dst: Unit
      Src: /src/raksha/src/common/utils/iterator_adapter.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' c'
    argTypes:
    - Container
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: raksha::utils::make_adapted_range
    functionSourceFile: /src/raksha/src/common/utils/iterator_adapter.h
    functionUses: 18
    functionsReached:
    - raksha::utils::make_adapted_range
    - Unit
    linkageType: ''
    returnType: auto
    signature: auto make_adapted_range(const Container& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: raksha::RefCountedType::GetDestructorCalls
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned GetDestructorCalls()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: raksha::RefCountedType::ResetDestructorCalls
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetDestructorCalls()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: ~RefCountedType()
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RefCountedType()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::RefCountedType::ResetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:51,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:51,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:54,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:54,1
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:57,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:62,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:64,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 65
    functionName: raksha::TYPED_TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::make_intrusive_ptr
    - raksha::RefCountedType::ResetDestructorCalls
    - raksha::RefCountedType::GetDestructorCalls
    linkageType: ''
    returnType: void
    signature: "void TYPED_TEST(IntrusivePtrWithRefCountedTest,\n           CallsDestructorOnlyWhenRefCountIsZero)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::RefCountedType::ResetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:51,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:51,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:54,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:54,1
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:57,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:62,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:64,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 65
    functionName: raksha::TYPED_TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::make_intrusive_ptr
    - raksha::RefCountedType::ResetDestructorCalls
    - raksha::RefCountedType::GetDestructorCalls
    linkageType: ''
    returnType: void
    signature: "void TYPED_TEST(IntrusivePtrWithRefCountedTest,\n           CallsDestructorOnlyWhenRefCountIsZero)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: raksha::RefCountedType::GetDestructorCalls
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned GetDestructorCalls()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: raksha::RefCountedType::ResetDestructorCalls
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResetDestructorCalls()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: ~RefCountedType()
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RefCountedType()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::RefCountedType::ResetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:51,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:51,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:54,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:54,1
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:57,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:62,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:64,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 65
    functionName: raksha::TYPED_TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::make_intrusive_ptr
    - raksha::RefCountedType::ResetDestructorCalls
    - raksha::RefCountedType::GetDestructorCalls
    linkageType: ''
    returnType: void
    signature: "void TYPED_TEST(IntrusivePtrWithRefCountedTest,\n           CallsDestructorOnlyWhenRefCountIsZero)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::RefCountedType::ResetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:51,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:51,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:54,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:54,1
    - Dst: raksha::make_intrusive_ptr
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:57,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:62,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:64,1
    - Dst: raksha::RefCountedType::GetDestructorCalls
      Src: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 65
    functionName: raksha::TYPED_TEST
    functionSourceFile: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::make_intrusive_ptr
    - raksha::RefCountedType::ResetDestructorCalls
    - raksha::RefCountedType::GetDestructorCalls
    linkageType: ''
    returnType: void
    signature: "void TYPED_TEST(IntrusivePtrWithRefCountedTest,\n           CallsDestructorOnlyWhenRefCountIsZero)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::CreateTemporaryDirectory
      Src: /src/raksha/src/common/utils/filesystem_test.cc:25,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/common/utils/filesystem_test.cc:26,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/common/utils/filesystem_test.cc:26,1
    - Dst: absl::StatusOr::value
      Src: /src/raksha/src/common/utils/filesystem_test.cc:27,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/common/utils/filesystem_test.cc:28,1
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/common/utils/filesystem_test.cc:28,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/common/utils/filesystem_test.cc:29,1
    - Dst: std::filesystem::is_directory
      Src: /src/raksha/src/common/utils/filesystem_test.cc:29,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/common/utils/filesystem_test.cc:30,1
    - Dst: std::filesystem::is_empty
      Src: /src/raksha/src/common/utils/filesystem_test.cc:30,1
    - Dst: raksha::common::utils::CreateTemporaryDirectory
      Src: /src/raksha/src/common/utils/filesystem_test.cc:33,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/common/utils/filesystem_test.cc:34,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/common/utils/filesystem_test.cc:34,1
    - Dst: absl::StatusOr::value
      Src: /src/raksha/src/common/utils/filesystem_test.cc:35,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/filesystem_test.cc:36,1
    - Dst: std::filesystem::remove_all
      Src: /src/raksha/src/common/utils/filesystem_test.cc:37,1
    - Dst: std::filesystem::remove_all
      Src: /src/raksha/src/common/utils/filesystem_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 39
    functionName: raksha::common::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/filesystem_test.cc
    functionUses: 0
    functionsReached:
    - std::filesystem::is_empty
    - std::filesystem::is_directory
    - EXPECT_TRUE
    - std::filesystem::exists
    - raksha::common::utils::CreateTemporaryDirectory
    - absl::StatusOr::ok
    - std::filesystem::remove_all
    - absl::StatusOr::value
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(CreateTemporaryDirectoryTest, CreateTemporaryDirectoryTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::CreateTemporaryDirectory
      Src: /src/raksha/src/common/utils/filesystem_test.cc:25,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/common/utils/filesystem_test.cc:26,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/common/utils/filesystem_test.cc:26,1
    - Dst: absl::StatusOr::value
      Src: /src/raksha/src/common/utils/filesystem_test.cc:27,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/common/utils/filesystem_test.cc:28,1
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/common/utils/filesystem_test.cc:28,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/common/utils/filesystem_test.cc:29,1
    - Dst: std::filesystem::is_directory
      Src: /src/raksha/src/common/utils/filesystem_test.cc:29,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/common/utils/filesystem_test.cc:30,1
    - Dst: std::filesystem::is_empty
      Src: /src/raksha/src/common/utils/filesystem_test.cc:30,1
    - Dst: raksha::common::utils::CreateTemporaryDirectory
      Src: /src/raksha/src/common/utils/filesystem_test.cc:33,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/common/utils/filesystem_test.cc:34,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/common/utils/filesystem_test.cc:34,1
    - Dst: absl::StatusOr::value
      Src: /src/raksha/src/common/utils/filesystem_test.cc:35,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/common/utils/filesystem_test.cc:36,1
    - Dst: std::filesystem::remove_all
      Src: /src/raksha/src/common/utils/filesystem_test.cc:37,1
    - Dst: std::filesystem::remove_all
      Src: /src/raksha/src/common/utils/filesystem_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 39
    functionName: raksha::common::utils::TEST
    functionSourceFile: /src/raksha/src/common/utils/filesystem_test.cc
    functionUses: 0
    functionsReached:
    - std::filesystem::is_empty
    - std::filesystem::is_directory
    - EXPECT_TRUE
    - std::filesystem::exists
    - raksha::common::utils::CreateTemporaryDirectory
    - absl::StatusOr::ok
    - std::filesystem::remove_all
    - absl::StatusOr::value
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(CreateTemporaryDirectoryTest, CreateTemporaryDirectoryTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/types_test.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/types_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(TypesTest, CopyConstTypeTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/types_test.cc:35,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/types_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/types_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(TypesTest, CopyConstTypeFalse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/types_test.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/types_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(TypesTest, CopyConstTypeTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/types_test.cc:35,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/types_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/types_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(TypesTest, CopyConstTypeFalse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/types_test.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/types_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(TypesTest, CopyConstTypeTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/types_test.cc:35,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/types_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/types_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(TypesTest, CopyConstTypeFalse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/types_test.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/types_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(TypesTest, CopyConstTypeTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/types_test.cc:35,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/common/utils/types_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: raksha::TEST
    functionSourceFile: /src/raksha/src/common/utils/types_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(TypesTest, CopyConstTypeFalse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/ranges_test.cc:32,1
    - Dst: raksha::utils::ranges::all
      Src: /src/raksha/src/common/utils/ranges_test.cc:32,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/ranges_test.cc:32,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/ranges_test.cc:35,1
    - Dst: raksha::utils::ranges::all
      Src: /src/raksha/src/common/utils/ranges_test.cc:35,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/common/utils/ranges_test.cc:35,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/ranges_test.cc:39,1
    - Dst: raksha::utils::ranges::all
      Src: /src/raksha/src/common/utils/ranges_test.cc:39,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/common/utils/ranges_test.cc:39,1
    - Dst: Pair
      Src: /src/raksha/src/common/utils/ranges_test.cc:40,1
    - Dst: Pair
      Src: /src/raksha/src/common/utils/ranges_test.cc:40,1
    - Dst: Pair
      Src: /src/raksha/src/common/utils/ranges_test.cc:40,1
    - Dst: Pair
      Src: /src/raksha/src/common/utils/ranges_test.cc:41,1
    - Dst: Pair
      Src: /src/raksha/src/common/utils/ranges_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: raksha::utils::ranges::TEST
    functionSourceFile: /src/raksha/src/common/utils/ranges_test.cc
    functionUses: 0
    functionsReached:
    - Pair
    - raksha::utils::ranges::all
    - EXPECT_THAT
    - UnorderedElementsAre
    - ElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(RangesTest, AllReturnsAllValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/ranges_test.cc:47,1
    - Dst: raksha::utils::ranges::keys
      Src: /src/raksha/src/common/utils/ranges_test.cc:47,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/common/utils/ranges_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: raksha::utils::ranges::TEST
    functionSourceFile: /src/raksha/src/common/utils/ranges_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_THAT
    - raksha::utils::ranges::keys
    - UnorderedElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(RangesTest, KeysIteratesOverKeys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/ranges_test.cc:53,1
    - Dst: raksha::utils::ranges::values
      Src: /src/raksha/src/common/utils/ranges_test.cc:53,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/common/utils/ranges_test.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: raksha::utils::ranges::TEST
    functionSourceFile: /src/raksha/src/common/utils/ranges_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::ranges::values
    - EXPECT_THAT
    - UnorderedElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(RangesTest, ValuesIteratesOverValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/ranges_test.cc:32,1
    - Dst: raksha::utils::ranges::all
      Src: /src/raksha/src/common/utils/ranges_test.cc:32,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/ranges_test.cc:32,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/ranges_test.cc:35,1
    - Dst: raksha::utils::ranges::all
      Src: /src/raksha/src/common/utils/ranges_test.cc:35,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/common/utils/ranges_test.cc:35,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/ranges_test.cc:39,1
    - Dst: raksha::utils::ranges::all
      Src: /src/raksha/src/common/utils/ranges_test.cc:39,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/common/utils/ranges_test.cc:39,1
    - Dst: Pair
      Src: /src/raksha/src/common/utils/ranges_test.cc:40,1
    - Dst: Pair
      Src: /src/raksha/src/common/utils/ranges_test.cc:40,1
    - Dst: Pair
      Src: /src/raksha/src/common/utils/ranges_test.cc:40,1
    - Dst: Pair
      Src: /src/raksha/src/common/utils/ranges_test.cc:41,1
    - Dst: Pair
      Src: /src/raksha/src/common/utils/ranges_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: raksha::utils::ranges::TEST
    functionSourceFile: /src/raksha/src/common/utils/ranges_test.cc
    functionUses: 0
    functionsReached:
    - Pair
    - raksha::utils::ranges::all
    - EXPECT_THAT
    - UnorderedElementsAre
    - ElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(RangesTest, AllReturnsAllValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/ranges_test.cc:47,1
    - Dst: raksha::utils::ranges::keys
      Src: /src/raksha/src/common/utils/ranges_test.cc:47,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/common/utils/ranges_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: raksha::utils::ranges::TEST
    functionSourceFile: /src/raksha/src/common/utils/ranges_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_THAT
    - raksha::utils::ranges::keys
    - UnorderedElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(RangesTest, KeysIteratesOverKeys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/ranges_test.cc:53,1
    - Dst: raksha::utils::ranges::values
      Src: /src/raksha/src/common/utils/ranges_test.cc:53,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/common/utils/ranges_test.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: raksha::utils::ranges::TEST
    functionSourceFile: /src/raksha/src/common/utils/ranges_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::ranges::values
    - EXPECT_THAT
    - UnorderedElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(RangesTest, ValuesIteratesOverValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/ranges_test.cc:32,1
    - Dst: raksha::utils::ranges::all
      Src: /src/raksha/src/common/utils/ranges_test.cc:32,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/ranges_test.cc:32,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/ranges_test.cc:35,1
    - Dst: raksha::utils::ranges::all
      Src: /src/raksha/src/common/utils/ranges_test.cc:35,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/common/utils/ranges_test.cc:35,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/ranges_test.cc:39,1
    - Dst: raksha::utils::ranges::all
      Src: /src/raksha/src/common/utils/ranges_test.cc:39,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/common/utils/ranges_test.cc:39,1
    - Dst: Pair
      Src: /src/raksha/src/common/utils/ranges_test.cc:40,1
    - Dst: Pair
      Src: /src/raksha/src/common/utils/ranges_test.cc:40,1
    - Dst: Pair
      Src: /src/raksha/src/common/utils/ranges_test.cc:40,1
    - Dst: Pair
      Src: /src/raksha/src/common/utils/ranges_test.cc:41,1
    - Dst: Pair
      Src: /src/raksha/src/common/utils/ranges_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: raksha::utils::ranges::TEST
    functionSourceFile: /src/raksha/src/common/utils/ranges_test.cc
    functionUses: 0
    functionsReached:
    - Pair
    - raksha::utils::ranges::all
    - EXPECT_THAT
    - UnorderedElementsAre
    - ElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(RangesTest, AllReturnsAllValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/ranges_test.cc:47,1
    - Dst: raksha::utils::ranges::keys
      Src: /src/raksha/src/common/utils/ranges_test.cc:47,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/common/utils/ranges_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: raksha::utils::ranges::TEST
    functionSourceFile: /src/raksha/src/common/utils/ranges_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_THAT
    - raksha::utils::ranges::keys
    - UnorderedElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(RangesTest, KeysIteratesOverKeys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/ranges_test.cc:53,1
    - Dst: raksha::utils::ranges::values
      Src: /src/raksha/src/common/utils/ranges_test.cc:53,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/common/utils/ranges_test.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: raksha::utils::ranges::TEST
    functionSourceFile: /src/raksha/src/common/utils/ranges_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::ranges::values
    - EXPECT_THAT
    - UnorderedElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(RangesTest, ValuesIteratesOverValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/ranges_test.cc:32,1
    - Dst: raksha::utils::ranges::all
      Src: /src/raksha/src/common/utils/ranges_test.cc:32,1
    - Dst: ElementsAre
      Src: /src/raksha/src/common/utils/ranges_test.cc:32,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/ranges_test.cc:35,1
    - Dst: raksha::utils::ranges::all
      Src: /src/raksha/src/common/utils/ranges_test.cc:35,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/common/utils/ranges_test.cc:35,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/ranges_test.cc:39,1
    - Dst: raksha::utils::ranges::all
      Src: /src/raksha/src/common/utils/ranges_test.cc:39,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/common/utils/ranges_test.cc:39,1
    - Dst: Pair
      Src: /src/raksha/src/common/utils/ranges_test.cc:40,1
    - Dst: Pair
      Src: /src/raksha/src/common/utils/ranges_test.cc:40,1
    - Dst: Pair
      Src: /src/raksha/src/common/utils/ranges_test.cc:40,1
    - Dst: Pair
      Src: /src/raksha/src/common/utils/ranges_test.cc:41,1
    - Dst: Pair
      Src: /src/raksha/src/common/utils/ranges_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: raksha::utils::ranges::TEST
    functionSourceFile: /src/raksha/src/common/utils/ranges_test.cc
    functionUses: 0
    functionsReached:
    - Pair
    - raksha::utils::ranges::all
    - EXPECT_THAT
    - UnorderedElementsAre
    - ElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(RangesTest, AllReturnsAllValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/ranges_test.cc:47,1
    - Dst: raksha::utils::ranges::keys
      Src: /src/raksha/src/common/utils/ranges_test.cc:47,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/common/utils/ranges_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: raksha::utils::ranges::TEST
    functionSourceFile: /src/raksha/src/common/utils/ranges_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_THAT
    - raksha::utils::ranges::keys
    - UnorderedElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(RangesTest, KeysIteratesOverKeys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/common/utils/ranges_test.cc:53,1
    - Dst: raksha::utils::ranges::values
      Src: /src/raksha/src/common/utils/ranges_test.cc:53,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/common/utils/ranges_test.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: raksha::utils::ranges::TEST
    functionSourceFile: /src/raksha/src/common/utils/ranges_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::ranges::values
    - EXPECT_THAT
    - UnorderedElementsAre
    linkageType: ''
    returnType: void
    signature: void TEST(RangesTest, ValuesIteratesOverValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::getenv
      Src: /src/raksha/src/common/utils/test/utils.cc:29,1
    - Dst: std::getenv
      Src: /src/raksha/src/common/utils/test/utils.cc:30,1
    - Dst: CHECK
      Src: /src/raksha/src/common/utils/test/utils.cc:31,1
    - Dst: CHECK
      Src: /src/raksha/src/common/utils/test/utils.cc:32,1
    - Dst: std::filesystem::path
      Src: /src/raksha/src/common/utils/test/utils.cc:33,1
    - Dst: std::filesystem::path
      Src: /src/raksha/src/common/utils/test/utils.cc:34,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/test/utils.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: raksha::utils::test::GetTestDataDir
    functionSourceFile: /src/raksha/src/common/utils/test/utils.cc
    functionUses: 0
    functionsReached:
    - std::getenv
    - std::filesystem::path
    - CHECK
    - std::move
    linkageType: ''
    returnType: std::filesystem::path
    signature: std::filesystem::path GetTestDataDir(std::string path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/common/utils/test/utils.cc:41,1
    - Dst: std::getline
      Src: /src/raksha/src/common/utils/test/utils.cc:43,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/common/utils/test/utils.cc:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' file'
    argTypes:
    - std::filesystem::path
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: raksha::utils::test::ReadFileLines
    functionSourceFile: /src/raksha/src/common/utils/test/utils.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - std::vector::push_back
    - std::getline
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> ReadFileLines(const std::filesystem::path&
      file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::getenv
      Src: /src/raksha/src/common/utils/test/utils.cc:29,1
    - Dst: std::getenv
      Src: /src/raksha/src/common/utils/test/utils.cc:30,1
    - Dst: CHECK
      Src: /src/raksha/src/common/utils/test/utils.cc:31,1
    - Dst: CHECK
      Src: /src/raksha/src/common/utils/test/utils.cc:32,1
    - Dst: std::filesystem::path
      Src: /src/raksha/src/common/utils/test/utils.cc:33,1
    - Dst: std::filesystem::path
      Src: /src/raksha/src/common/utils/test/utils.cc:34,1
    - Dst: std::move
      Src: /src/raksha/src/common/utils/test/utils.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: raksha::utils::test::GetTestDataDir
    functionSourceFile: /src/raksha/src/common/utils/test/utils.cc
    functionUses: 0
    functionsReached:
    - std::getenv
    - std::filesystem::path
    - CHECK
    - std::move
    linkageType: ''
    returnType: std::filesystem::path
    signature: std::filesystem::path GetTestDataDir(std::string path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/common/utils/test/utils.cc:41,1
    - Dst: std::getline
      Src: /src/raksha/src/common/utils/test/utils.cc:43,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/common/utils/test/utils.cc:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' file'
    argTypes:
    - std::filesystem::path
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: raksha::utils::test::ReadFileLines
    functionSourceFile: /src/raksha/src/common/utils/test/utils.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - std::vector::push_back
    - std::getline
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> ReadFileLines(const std::filesystem::path&
      file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/common/utils/test/dl_string_extractor/datalog_string.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - kind
    - dl_string
    argTypes:
    - DatalogStringKind
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: raksha::utils::test::dl_string_extractor::DatalogString::DatalogString
    functionSourceFile: /src/raksha/src/common/utils/test/dl_string_extractor/datalog_string.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void DatalogString(DatalogStringKind kind, std::string dl_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::utils::test::dl_string_extractor::DatalogString::kind
    functionSourceFile: /src/raksha/src/common/utils/test/dl_string_extractor/datalog_string.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DatalogStringKind
    signature: DatalogStringKind kind() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: raksha::utils::test::dl_string_extractor::DatalogString::dl_string
    functionSourceFile: /src/raksha/src/common/utils/test/dl_string_extractor/datalog_string.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view dl_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/common/utils/test/dl_string_extractor/datalog_string.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - kind
    - dl_string
    argTypes:
    - DatalogStringKind
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: raksha::utils::test::dl_string_extractor::DatalogString::DatalogString
    functionSourceFile: /src/raksha/src/common/utils/test/dl_string_extractor/datalog_string.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void DatalogString(DatalogStringKind kind, std::string dl_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::utils::test::dl_string_extractor::DatalogString::kind
    functionSourceFile: /src/raksha/src/common/utils/test/dl_string_extractor/datalog_string.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DatalogStringKind
    signature: DatalogStringKind kind() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: raksha::utils::test::dl_string_extractor::DatalogString::dl_string
    functionSourceFile: /src/raksha/src/common/utils/test/dl_string_extractor/datalog_string.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view dl_string() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/common/utils/test/dl_string_extractor/dl_string_test_file_generator.cc:42,1
    - Dst: LOG
      Src: /src/raksha/src/common/utils/test/dl_string_extractor/dl_string_test_file_generator.cc:51,1
    - Dst: strerror
      Src: /src/raksha/src/common/utils/test/dl_string_extractor/dl_string_test_file_generator.cc:52,1
    - Dst: raksha::utils::test::dl_string_extractor::GatherDatalogStrings
      Src: /src/raksha/src/common/utils/test/dl_string_extractor/dl_string_test_file_generator.cc:68,1
    - Dst: kind
      Src: /src/raksha/src/common/utils/test/dl_string_extractor/dl_string_test_file_generator.cc:72,1
    - Dst: dl_string
      Src: /src/raksha/src/common/utils/test/dl_string_extractor/dl_string_test_file_generator.cc:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 77
    functionName: main
    functionSourceFile: /src/raksha/src/common/utils/test/dl_string_extractor/dl_string_test_file_generator.cc
    functionUses: 0
    functionsReached:
    - kind
    - strerror
    - dl_string
    - raksha::utils::test::dl_string_extractor::GatherDatalogStrings
    - CHECK
    - LOG
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/raksha/src/common/utils/test/dl_string_extractor/dl_string_parsing_test_driver.cc:30,1
    - Dst: std::string
      Src: /src/raksha/src/common/utils/test/dl_string_extractor/dl_string_parsing_test_driver.cc:31,1
    - Dst: assert
      Src: /src/raksha/src/common/utils/test/dl_string_extractor/dl_string_parsing_test_driver.cc:35,1
    - Dst: std::unique_ptr::run
      Src: /src/raksha/src/common/utils/test/dl_string_extractor/dl_string_parsing_test_driver.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (argc == 2)
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/raksha/src/common/utils/test/dl_string_extractor/dl_string_parsing_test_driver.cc
    - condition: (prog != nullptr)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/raksha/src/common/utils/test/dl_string_extractor/dl_string_parsing_test_driver.cc
    constantsTouched: []
    func_position:
      end: 43
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 43
    functionName: main
    functionSourceFile: /src/raksha/src/common/utils/test/dl_string_extractor/dl_string_parsing_test_driver.cc
    functionUses: 0
    functionsReached:
    - std::string
    - std::unique_ptr::run
    - assert
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:20,1
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:20,1
    - Dst: std::get<1>
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:21,1
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: raksha::backends::policy_engine::DpParamaterPolicyRulePolicyTest::DpParamaterPolicyRulePolicyTest
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void DpParamaterPolicyRulePolicyTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetPolicyFactName
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:30,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:31,1
    - Dst: std::optional::has_value
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:31,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: raksha::backends::policy_engine::TEST_P
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - ASSERT_TRUE
    - std::optional::has_value
    - GetPolicyFactName
    linkageType: ''
    returnType: void
    signature: void TEST_P(DpParamaterPolicyRulePolicyTest, TestPolicyFactName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:41,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:43,1
    - Dst: absl::SimpleAtoi
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:43,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - parameter
    argTypes:
    - DpParameter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: raksha::backends::policy_engine::ConvertParamToStringExpectLossless
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_EQ
    - absl::SimpleAtoi
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string ConvertParamToStringExpectLossless(DpParameter parameter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetPolicyString
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:52,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:53,1
    - Dst: std::optional::has_value
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:53,1
    - Dst: absl::StrSplit
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:56,1
    - Dst: absl::SkipEmpty
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:57,1
    - Dst: std::vector::size
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:57,1
    - Dst: raksha::backends::policy_engine::ConvertParamToStringExpectLossless
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:60,1
    - Dst: raksha::backends::policy_engine::ConvertParamToStringExpectLossless
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:61,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:64,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:65,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:67,1
    - Dst: testing::UnorderedElementsAreArray
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 68
    functionName: raksha::backends::policy_engine::TEST_P
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc
    functionUses: 0
    functionsReached:
    - absl::SkipEmpty
    - EXPECT_EQ
    - raksha::backends::policy_engine::ConvertParamToStringExpectLossless
    - std::optional::has_value
    - ASSERT_TRUE
    - absl::StrFormat
    - EXPECT_THAT
    - testing::UnorderedElementsAreArray
    - GetPolicyString
    - absl::StrSplit
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TEST_P(DpParamaterPolicyRulePolicyTest, TestPolicyString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:20,1
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:20,1
    - Dst: std::get<1>
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:21,1
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: raksha::backends::policy_engine::DpParamaterPolicyRulePolicyTest::DpParamaterPolicyRulePolicyTest
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void DpParamaterPolicyRulePolicyTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetPolicyFactName
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:30,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:31,1
    - Dst: std::optional::has_value
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:31,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: raksha::backends::policy_engine::TEST_P
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - ASSERT_TRUE
    - std::optional::has_value
    - GetPolicyFactName
    linkageType: ''
    returnType: void
    signature: void TEST_P(DpParamaterPolicyRulePolicyTest, TestPolicyFactName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:41,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:43,1
    - Dst: absl::SimpleAtoi
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:43,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - parameter
    argTypes:
    - DpParameter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: raksha::backends::policy_engine::ConvertParamToStringExpectLossless
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc
    functionUses: 1
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_EQ
    - absl::SimpleAtoi
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string ConvertParamToStringExpectLossless(DpParameter parameter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetPolicyString
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:52,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:53,1
    - Dst: std::optional::has_value
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:53,1
    - Dst: absl::StrSplit
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:56,1
    - Dst: absl::SkipEmpty
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:57,1
    - Dst: std::vector::size
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:57,1
    - Dst: raksha::backends::policy_engine::ConvertParamToStringExpectLossless
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:60,1
    - Dst: raksha::backends::policy_engine::ConvertParamToStringExpectLossless
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:61,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:64,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:65,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:67,1
    - Dst: testing::UnorderedElementsAreArray
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 68
    functionName: raksha::backends::policy_engine::TEST_P
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc
    functionUses: 0
    functionsReached:
    - absl::SkipEmpty
    - EXPECT_EQ
    - raksha::backends::policy_engine::ConvertParamToStringExpectLossless
    - std::optional::has_value
    - ASSERT_TRUE
    - absl::StrFormat
    - EXPECT_THAT
    - testing::UnorderedElementsAreArray
    - GetPolicyString
    - absl::StrSplit
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TEST_P(DpParamaterPolicyRulePolicyTest, TestPolicyString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:20,1
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:20,1
    - Dst: std::get<1>
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:21,1
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: raksha::backends::policy_engine::DpParamaterPolicyRulePolicyTest::DpParamaterPolicyRulePolicyTest
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void DpParamaterPolicyRulePolicyTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetPolicyFactName
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:30,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:31,1
    - Dst: std::optional::has_value
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:31,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: raksha::backends::policy_engine::TEST_P
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - ASSERT_TRUE
    - std::optional::has_value
    - GetPolicyFactName
    linkageType: ''
    returnType: void
    signature: void TEST_P(DpParamaterPolicyRulePolicyTest, TestPolicyFactName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:41,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:43,1
    - Dst: absl::SimpleAtoi
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:43,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - parameter
    argTypes:
    - DpParameter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: raksha::backends::policy_engine::ConvertParamToStringExpectLossless
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc
    functionUses: 2
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_EQ
    - absl::SimpleAtoi
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string ConvertParamToStringExpectLossless(DpParameter parameter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetPolicyString
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:52,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:53,1
    - Dst: std::optional::has_value
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:53,1
    - Dst: absl::StrSplit
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:56,1
    - Dst: absl::SkipEmpty
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:57,1
    - Dst: std::vector::size
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:57,1
    - Dst: raksha::backends::policy_engine::ConvertParamToStringExpectLossless
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:60,1
    - Dst: raksha::backends::policy_engine::ConvertParamToStringExpectLossless
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:61,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:64,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:65,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:67,1
    - Dst: testing::UnorderedElementsAreArray
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 68
    functionName: raksha::backends::policy_engine::TEST_P
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc
    functionUses: 0
    functionsReached:
    - absl::SkipEmpty
    - EXPECT_EQ
    - raksha::backends::policy_engine::ConvertParamToStringExpectLossless
    - std::optional::has_value
    - ASSERT_TRUE
    - absl::StrFormat
    - EXPECT_THAT
    - testing::UnorderedElementsAreArray
    - GetPolicyString
    - absl::StrSplit
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TEST_P(DpParamaterPolicyRulePolicyTest, TestPolicyString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:20,1
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:20,1
    - Dst: std::get<1>
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:21,1
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: raksha::backends::policy_engine::DpParamaterPolicyRulePolicyTest::DpParamaterPolicyRulePolicyTest
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc
    functionUses: 0
    functionsReached:
    - std::get<1>
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void DpParamaterPolicyRulePolicyTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetPolicyFactName
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:30,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:31,1
    - Dst: std::optional::has_value
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:31,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: raksha::backends::policy_engine::TEST_P
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - ASSERT_TRUE
    - std::optional::has_value
    - GetPolicyFactName
    linkageType: ''
    returnType: void
    signature: void TEST_P(DpParamaterPolicyRulePolicyTest, TestPolicyFactName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:41,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:43,1
    - Dst: absl::SimpleAtoi
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:43,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - parameter
    argTypes:
    - DpParameter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: raksha::backends::policy_engine::ConvertParamToStringExpectLossless
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc
    functionUses: 3
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_EQ
    - absl::SimpleAtoi
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string ConvertParamToStringExpectLossless(DpParameter parameter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetPolicyString
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:52,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:53,1
    - Dst: std::optional::has_value
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:53,1
    - Dst: absl::StrSplit
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:56,1
    - Dst: absl::SkipEmpty
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:57,1
    - Dst: std::vector::size
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:57,1
    - Dst: raksha::backends::policy_engine::ConvertParamToStringExpectLossless
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:60,1
    - Dst: raksha::backends::policy_engine::ConvertParamToStringExpectLossless
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:61,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:64,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:65,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:67,1
    - Dst: testing::UnorderedElementsAreArray
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 68
    functionName: raksha::backends::policy_engine::TEST_P
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc
    functionUses: 0
    functionsReached:
    - absl::SkipEmpty
    - EXPECT_EQ
    - raksha::backends::policy_engine::ConvertParamToStringExpectLossless
    - std::optional::has_value
    - ASSERT_TRUE
    - absl::StrFormat
    - EXPECT_THAT
    - testing::UnorderedElementsAreArray
    - GetPolicyString
    - absl::StrSplit
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TEST_P(DpParamaterPolicyRulePolicyTest, TestPolicyString)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::backends::policy_engine::Policy::Policy
    functionSourceFile: /src/raksha/src/backends/policy_engine/policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Policy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: raksha::backends::policy_engine::Policy::Policy
    functionSourceFile: /src/raksha/src/backends/policy_engine/policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Policy(const Policy&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: '& operator=(const Policy&)'
    functionSourceFile: /src/raksha/src/backends/policy_engine/policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Policy
    signature: Policy & operator=(const Policy&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::backends::policy_engine::Policy::Policy
    functionSourceFile: /src/raksha/src/backends/policy_engine/policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Policy(Policy&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: '& operator=(Policy&&)'
    functionSourceFile: /src/raksha/src/backends/policy_engine/policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Policy
    signature: Policy & operator=(Policy&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: ~Policy()
    functionSourceFile: /src/raksha/src/backends/policy_engine/policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Policy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::backends::policy_engine::Policy::Policy
    functionSourceFile: /src/raksha/src/backends/policy_engine/policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Policy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: raksha::backends::policy_engine::Policy::Policy
    functionSourceFile: /src/raksha/src/backends/policy_engine/policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Policy(const Policy&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: '& operator=(const Policy&)'
    functionSourceFile: /src/raksha/src/backends/policy_engine/policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Policy
    signature: Policy & operator=(const Policy&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::backends::policy_engine::Policy::Policy
    functionSourceFile: /src/raksha/src/backends/policy_engine/policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Policy(Policy&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: '& operator=(Policy&&)'
    functionSourceFile: /src/raksha/src/backends/policy_engine/policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Policy
    signature: Policy & operator=(Policy&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: ~Policy()
    functionSourceFile: /src/raksha/src/backends/policy_engine/policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Policy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/sql_policy_rule_policy.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - is_sql_policy_rule_facts
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: raksha::backends::policy_engine::SqlPolicyRulePolicy::SqlPolicyRulePolicy
    functionSourceFile: /src/raksha/src/backends/policy_engine/sql_policy_rule_policy.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void SqlPolicyRulePolicy(std::string is_sql_policy_rule_facts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<souffle::SouffleProgram>
      Src: /src/raksha/src/backends/policy_engine/sql_policy_rule_policy.h:42,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/backends/policy_engine/sql_policy_rule_policy.h:43,1
    - Dst: souffle::newInstance_sql_policy_verifier_cxx
      Src: /src/raksha/src/backends/policy_engine/sql_policy_rule_policy.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: raksha::backends::policy_engine::SqlPolicyRulePolicy::GetPolicyAnalysisChecker
    functionSourceFile: /src/raksha/src/backends/policy_engine/sql_policy_rule_policy.h
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - souffle::newInstance_sql_policy_verifier_cxx
    - std::unique_ptr<souffle::SouffleProgram>
    linkageType: ''
    returnType: std::unique_ptr<souffle::SouffleProgram>
    signature: "std::unique_ptr<souffle::SouffleProgram> GetPolicyAnalysisChecker()\n
      \     const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: raksha::backends::policy_engine::SqlPolicyRulePolicy::GetPolicyFactName
    functionSourceFile: /src/raksha/src/backends/policy_engine/sql_policy_rule_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> GetPolicyFactName() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: raksha::backends::policy_engine::SqlPolicyRulePolicy::GetPolicyString
    functionSourceFile: /src/raksha/src/backends/policy_engine/sql_policy_rule_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> GetPolicyString() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/sql_policy_rule_policy.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - is_sql_policy_rule_facts
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: raksha::backends::policy_engine::SqlPolicyRulePolicy::SqlPolicyRulePolicy
    functionSourceFile: /src/raksha/src/backends/policy_engine/sql_policy_rule_policy.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void SqlPolicyRulePolicy(std::string is_sql_policy_rule_facts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<souffle::SouffleProgram>
      Src: /src/raksha/src/backends/policy_engine/sql_policy_rule_policy.h:42,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/backends/policy_engine/sql_policy_rule_policy.h:43,1
    - Dst: souffle::newInstance_sql_policy_verifier_cxx
      Src: /src/raksha/src/backends/policy_engine/sql_policy_rule_policy.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: raksha::backends::policy_engine::SqlPolicyRulePolicy::GetPolicyAnalysisChecker
    functionSourceFile: /src/raksha/src/backends/policy_engine/sql_policy_rule_policy.h
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - souffle::newInstance_sql_policy_verifier_cxx
    - std::unique_ptr<souffle::SouffleProgram>
    linkageType: ''
    returnType: std::unique_ptr<souffle::SouffleProgram>
    signature: "std::unique_ptr<souffle::SouffleProgram> GetPolicyAnalysisChecker()\n
      \     const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: raksha::backends::policy_engine::SqlPolicyRulePolicy::GetPolicyFactName
    functionSourceFile: /src/raksha/src/backends/policy_engine/sql_policy_rule_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> GetPolicyFactName() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: raksha::backends::policy_engine::SqlPolicyRulePolicy::GetPolicyString
    functionSourceFile: /src/raksha/src/backends/policy_engine/sql_policy_rule_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> GetPolicyString() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - epsilon
    - delta
    argTypes:
    - DpParameterNumericType
    - DpParameterNumericType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: raksha::backends::policy_engine::DpParameterPolicy::DpParameterPolicy
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DpParameterPolicy(DpParameterNumericType epsilon,\n                             DpParameterNumericType
      delta)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<souffle::SouffleProgram>
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy.h:52,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy.h:53,1
    - Dst: souffle::newInstance_dp_policy_verifier_cxx
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: raksha::backends::policy_engine::DpParameterPolicy::GetPolicyAnalysisChecker
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy.h
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - souffle::newInstance_dp_policy_verifier_cxx
    - std::unique_ptr<souffle::SouffleProgram>
    linkageType: ''
    returnType: std::unique_ptr<souffle::SouffleProgram>
    signature: "std::unique_ptr<souffle::SouffleProgram> GetPolicyAnalysisChecker()\n
      \     const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: raksha::backends::policy_engine::DpParameterPolicy::GetPolicyFactName
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> GetPolicyFactName() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: raksha::backends::policy_engine::DpParameterPolicy::GetPolicyString
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy.h
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> GetPolicyString() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - epsilon
    - delta
    argTypes:
    - DpParameterNumericType
    - DpParameterNumericType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: raksha::backends::policy_engine::DpParameterPolicy::DpParameterPolicy
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DpParameterPolicy(DpParameterNumericType epsilon,\n                             DpParameterNumericType
      delta)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<souffle::SouffleProgram>
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy.h:52,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy.h:53,1
    - Dst: souffle::newInstance_dp_policy_verifier_cxx
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: raksha::backends::policy_engine::DpParameterPolicy::GetPolicyAnalysisChecker
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy.h
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - souffle::newInstance_dp_policy_verifier_cxx
    - std::unique_ptr<souffle::SouffleProgram>
    linkageType: ''
    returnType: std::unique_ptr<souffle::SouffleProgram>
    signature: "std::unique_ptr<souffle::SouffleProgram> GetPolicyAnalysisChecker()\n
      \     const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: raksha::backends::policy_engine::DpParameterPolicy::GetPolicyFactName
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> GetPolicyFactName() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/dp_parameter_policy.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: raksha::backends::policy_engine::DpParameterPolicy::GetPolicyString
    functionSourceFile: /src/raksha/src/backends/policy_engine/dp_parameter_policy.h
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> GetPolicyString() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: ~PolicyChecker()
    functionSourceFile: /src/raksha/src/backends/policy_engine/policy_checker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PolicyChecker()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: ~PolicyChecker()
    functionSourceFile: /src/raksha/src/backends/policy_engine/policy_checker.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PolicyChecker()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/auth_logic_policy.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - auth_logic_policy_engine_name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: raksha::backends::policy_engine::AuthLogicPolicy::AuthLogicPolicy
    functionSourceFile: /src/raksha/src/backends/policy_engine/auth_logic_policy.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void AuthLogicPolicy(std::string auth_logic_policy_engine_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<souffle::SouffleProgram>
      Src: /src/raksha/src/backends/policy_engine/auth_logic_policy.h:37,1
    - Dst: souffle::ProgramFactory::newInstance
      Src: /src/raksha/src/backends/policy_engine/auth_logic_policy.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: raksha::backends::policy_engine::AuthLogicPolicy::GetPolicyAnalysisChecker
    functionSourceFile: /src/raksha/src/backends/policy_engine/auth_logic_policy.h
    functionUses: 0
    functionsReached:
    - souffle::ProgramFactory::newInstance
    - std::unique_ptr<souffle::SouffleProgram>
    linkageType: ''
    returnType: std::unique_ptr<souffle::SouffleProgram>
    signature: "std::unique_ptr<souffle::SouffleProgram> GetPolicyAnalysisChecker()\n
      \     const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: raksha::backends::policy_engine::AuthLogicPolicy::GetPolicyFactName
    functionSourceFile: /src/raksha/src/backends/policy_engine/auth_logic_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> GetPolicyFactName() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: raksha::backends::policy_engine::AuthLogicPolicy::GetPolicyString
    functionSourceFile: /src/raksha/src/backends/policy_engine/auth_logic_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> GetPolicyString() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/auth_logic_policy.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - auth_logic_policy_engine_name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: raksha::backends::policy_engine::AuthLogicPolicy::AuthLogicPolicy
    functionSourceFile: /src/raksha/src/backends/policy_engine/auth_logic_policy.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void AuthLogicPolicy(std::string auth_logic_policy_engine_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<souffle::SouffleProgram>
      Src: /src/raksha/src/backends/policy_engine/auth_logic_policy.h:37,1
    - Dst: souffle::ProgramFactory::newInstance
      Src: /src/raksha/src/backends/policy_engine/auth_logic_policy.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: raksha::backends::policy_engine::AuthLogicPolicy::GetPolicyAnalysisChecker
    functionSourceFile: /src/raksha/src/backends/policy_engine/auth_logic_policy.h
    functionUses: 0
    functionsReached:
    - souffle::ProgramFactory::newInstance
    - std::unique_ptr<souffle::SouffleProgram>
    linkageType: ''
    returnType: std::unique_ptr<souffle::SouffleProgram>
    signature: "std::unique_ptr<souffle::SouffleProgram> GetPolicyAnalysisChecker()\n
      \     const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: raksha::backends::policy_engine::AuthLogicPolicy::GetPolicyFactName
    functionSourceFile: /src/raksha/src/backends/policy_engine/auth_logic_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> GetPolicyFactName() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: raksha::backends::policy_engine::AuthLogicPolicy::GetPolicyString
    functionSourceFile: /src/raksha/src/backends/policy_engine/auth_logic_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> GetPolicyString() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/catchall_policy_rule_policy.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - is_sql_policy_rule_facts
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: raksha::backends::policy_engine::CatchallPolicyRulePolicy::CatchallPolicyRulePolicy
    functionSourceFile: /src/raksha/src/backends/policy_engine/catchall_policy_rule_policy.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CatchallPolicyRulePolicy(std::string is_sql_policy_rule_facts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<souffle::SouffleProgram>
      Src: /src/raksha/src/backends/policy_engine/catchall_policy_rule_policy.h:45,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/backends/policy_engine/catchall_policy_rule_policy.h:46,1
    - Dst: souffle::newInstance_datalog_policy_verifier_cxx
      Src: /src/raksha/src/backends/policy_engine/catchall_policy_rule_policy.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: raksha::backends::policy_engine::CatchallPolicyRulePolicy::GetPolicyAnalysisChecker
    functionSourceFile: /src/raksha/src/backends/policy_engine/catchall_policy_rule_policy.h
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - souffle::newInstance_datalog_policy_verifier_cxx
    - std::unique_ptr<souffle::SouffleProgram>
    linkageType: ''
    returnType: std::unique_ptr<souffle::SouffleProgram>
    signature: "std::unique_ptr<souffle::SouffleProgram> GetPolicyAnalysisChecker()\n
      \     const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: raksha::backends::policy_engine::CatchallPolicyRulePolicy::GetPolicyFactName
    functionSourceFile: /src/raksha/src/backends/policy_engine/catchall_policy_rule_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> GetPolicyFactName() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: raksha::backends::policy_engine::CatchallPolicyRulePolicy::GetPolicyString
    functionSourceFile: /src/raksha/src/backends/policy_engine/catchall_policy_rule_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> GetPolicyString() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/catchall_policy_rule_policy.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - is_sql_policy_rule_facts
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: raksha::backends::policy_engine::CatchallPolicyRulePolicy::CatchallPolicyRulePolicy
    functionSourceFile: /src/raksha/src/backends/policy_engine/catchall_policy_rule_policy.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CatchallPolicyRulePolicy(std::string is_sql_policy_rule_facts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<souffle::SouffleProgram>
      Src: /src/raksha/src/backends/policy_engine/catchall_policy_rule_policy.h:45,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/backends/policy_engine/catchall_policy_rule_policy.h:46,1
    - Dst: souffle::newInstance_datalog_policy_verifier_cxx
      Src: /src/raksha/src/backends/policy_engine/catchall_policy_rule_policy.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: raksha::backends::policy_engine::CatchallPolicyRulePolicy::GetPolicyAnalysisChecker
    functionSourceFile: /src/raksha/src/backends/policy_engine/catchall_policy_rule_policy.h
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - souffle::newInstance_datalog_policy_verifier_cxx
    - std::unique_ptr<souffle::SouffleProgram>
    linkageType: ''
    returnType: std::unique_ptr<souffle::SouffleProgram>
    signature: "std::unique_ptr<souffle::SouffleProgram> GetPolicyAnalysisChecker()\n
      \     const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: raksha::backends::policy_engine::CatchallPolicyRulePolicy::GetPolicyFactName
    functionSourceFile: /src/raksha/src/backends/policy_engine/catchall_policy_rule_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> GetPolicyFactName() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: raksha::backends::policy_engine::CatchallPolicyRulePolicy::GetPolicyString
    functionSourceFile: /src/raksha/src/backends/policy_engine/catchall_policy_rule_policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> GetPolicyString() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:46,1
    - Dst: absl::NotFoundError
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:47,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:48,1
    - Dst: std::filesystem::path::string
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:48,1
    - Dst: absl::FailedPreconditionError
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:53,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:53,1
    - Dst: std::filesystem::path::string
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:54,1
    - Dst: strerror
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:54,1
    - Dst: std::ifstream::rdbuf
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:59,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - file_path
    argTypes:
    - std::filesystem::path
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 61
    functionName: ReadFileContents
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc
    functionUses: 0
    functionsReached:
    - strerror
    - std::filesystem::exists
    - std::ifstream::rdbuf
    - std::ostringstream::str
    - absl::FailedPreconditionError
    - absl::StrCat
    - absl::NotFoundError
    - std::filesystem::path::string
    linkageType: ''
    returnType: absl::StatusOr<std::string>
    signature: absl::StatusOr<std::string> ReadFileContents(std::filesystem::path
      file_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:46,1
    - Dst: absl::NotFoundError
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:47,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:48,1
    - Dst: std::filesystem::path::string
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:48,1
    - Dst: absl::FailedPreconditionError
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:53,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:53,1
    - Dst: std::filesystem::path::string
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:54,1
    - Dst: strerror
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:54,1
    - Dst: std::ifstream::rdbuf
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:59,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - file_path
    argTypes:
    - std::filesystem::path
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 61
    functionName: ReadFileContents
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc
    functionUses: 0
    functionsReached:
    - strerror
    - std::filesystem::exists
    - std::ifstream::rdbuf
    - std::ostringstream::str
    - absl::FailedPreconditionError
    - absl::StrCat
    - absl::NotFoundError
    - std::filesystem::path::string
    linkageType: ''
    returnType: absl::StatusOr<std::string>
    signature: absl::StatusOr<std::string> ReadFileContents(std::filesystem::path
      file_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::SetProgramUsageMessage
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:69,1
    - Dst: absl::ParseCommandLine
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:70,1
    - Dst: ReadFileContents
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:74,1
    - Dst: absl::GetFlag
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:74,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:75,1
    - Dst: LOG
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:76,1
    - Dst: absl::StatusOr::status
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:76,1
    - Dst: absl::GetFlag
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:80,1
    - Dst: std::optional::has_value
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:82,1
    - Dst: std::optional::value
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:82,1
    - Dst: raksha::ir::auth_logic::ParseProgram
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:88,1
    - Dst: absl::StatusOr::value
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:88,1
    - Dst: raksha::ir::auth_logic::InsertUniverseRelations
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:89,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::Lower
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:91,1
    - Dst: raksha::ir::auth_logic::SouffleEmitter::EmitProgram
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:93,1
    - Dst: LOG
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:99,1
    - Dst: strerror
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 107
    functionName: main
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc
    functionUses: 0
    functionsReached:
    - absl::ParseCommandLine
    - absl::GetFlag
    - absl::SetProgramUsageMessage
    - absl::StatusOr::status
    - strerror
    - std::optional::has_value
    - std::optional::value
    - absl::StatusOr::ok
    - raksha::ir::auth_logic::ParseProgram
    - raksha::ir::auth_logic::InsertUniverseRelations
    - raksha::ir::auth_logic::SouffleEmitter::EmitProgram
    - LOG
    - absl::StatusOr::value
    - raksha::ir::auth_logic::LoweringToDatalogPass::Lower
    - ReadFileContents
    linkageType: ''
    returnType: int
    signature: int main(int argc, char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.h:33,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fact
    argTypes:
    - ir::datalog::IsOperationFact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: raksha::backends::policy_engine::souffle::RakshaDatalogFacts::AddIsOperationFact
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.h
    functionUses: 0
    functionsReached:
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: void AddIsOperationFact(ir::datalog::IsOperationFact fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrJoin
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.h:37,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.h:40,1
    - Dst: raksha::backends::policy_engine::souffle::RakshaDatalogFacts::ToDatalogString
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: raksha::backends::policy_engine::souffle::RakshaDatalogFacts::ToDatalogString
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.h
    functionUses: 1
    functionsReached:
    - absl::StrAppend
    - raksha::backends::policy_engine::souffle::RakshaDatalogFacts::ToDatalogString
    - absl::StrJoin
    linkageType: ''
    returnType: std::string
    signature: std::string ToDatalogString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: '&is_operation_facts() const'
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<ir::datalog::IsOperationFact>
    signature: std::vector<ir::datalog::IsOperationFact> &is_operation_facts() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.h:33,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fact
    argTypes:
    - ir::datalog::IsOperationFact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: raksha::backends::policy_engine::souffle::RakshaDatalogFacts::AddIsOperationFact
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.h
    functionUses: 0
    functionsReached:
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: void AddIsOperationFact(ir::datalog::IsOperationFact fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrJoin
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.h:37,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.h:40,1
    - Dst: raksha::backends::policy_engine::souffle::RakshaDatalogFacts::ToDatalogString
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: raksha::backends::policy_engine::souffle::RakshaDatalogFacts::ToDatalogString
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.h
    functionUses: 2
    functionsReached:
    - absl::StrAppend
    - raksha::backends::policy_engine::souffle::RakshaDatalogFacts::ToDatalogString
    - absl::StrJoin
    linkageType: ''
    returnType: std::string
    signature: std::string ToDatalogString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: '&is_operation_facts() const'
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<ir::datalog::IsOperationFact>
    signature: std::vector<ir::datalog::IsOperationFact> &is_operation_facts() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:44,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: raksha::backends::policy_engine::MakeOperationResultValue
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc
    functionUses: 5
    functionsReached:
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - raksha::backends::policy_engine::MakeOperationResultValue
    linkageType: ''
    returnType: ir::Value
    signature: ir::Value MakeOperationResultValue(const Operation &op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:50,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:50,1
    - Dst: SqlPolicyRulePolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: raksha::backends::policy_engine::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - SoufflePolicyChecker::IsModulePolicyCompliant
    - SqlPolicyRulePolicy
    linkageType: ''
    returnType: void
    signature: void TEST(SoufflePolicyCheckerTest, SqlPolicyRuleReturnsTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ir::IRContext::RegisterOperator
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:55,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:55,1
    - Dst: ir::IRContext::RegisterOperator
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:57,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:57,1
    - Dst: ir::IRContext::RegisterOperator
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:59,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:59,1
    - Dst: ir::BlockBuilder::AddOperation
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:64,1
    - Dst: ir::BlockBuilder::AddOperation
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:67,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:68,1
    - Dst: std::vector<std::pair<std::string, ir::Value>>
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:69,1
    - Dst: ir::BlockBuilder::AddOperation
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:71,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:72,1
    - Dst: ir::Module::AddBlock
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:75,1
    - Dst: ir::BlockBuilder::build
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:75,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:79,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:79,1
    - Dst: SqlPolicyRulePolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:80,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:84,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:84,1
    - Dst: SqlPolicyRulePolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 85
    functionName: raksha::backends::policy_engine::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - ir::BlockBuilder::AddOperation
    - raksha::backends::policy_engine::MakeOperationResultValue
    - ir::Module::AddBlock
    - SoufflePolicyChecker::IsModulePolicyCompliant
    - ir::BlockBuilder::build
    - ir::IRContext::RegisterOperator
    - std::make_unique<Operator>
    - SqlPolicyRulePolicy
    - std::vector<std::pair<std::string, ir::Value>>
    linkageType: ''
    returnType: void
    signature: void TEST(SoufflePolicyCheckerTest, SqlPolicyRuleReturnsFalse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:90,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:91,1
    - Dst: DpParameterPolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: raksha::backends::policy_engine::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - SoufflePolicyChecker::IsModulePolicyCompliant
    - DpParameterPolicy
    linkageType: ''
    returnType: void
    signature: void TEST(SoufflePolicyCheckerTest, DpPolicyRuleReturnsTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseProgram
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:102,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:113,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:114,1
    - Dst: DpParameterPolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:114,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:115,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:116,1
    - Dst: DpParameterPolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 117
    functionName: raksha::backends::policy_engine::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - SoufflePolicyChecker::IsModulePolicyCompliant
    - ParseProgram
    - DpParameterPolicy
    linkageType: ''
    returnType: void
    signature: void TEST(SoufflePolicyCheckerTest, DpPolicyRuleReturnsFalse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:44,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: raksha::backends::policy_engine::MakeOperationResultValue
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc
    functionUses: 7
    functionsReached:
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - raksha::backends::policy_engine::MakeOperationResultValue
    linkageType: ''
    returnType: ir::Value
    signature: ir::Value MakeOperationResultValue(const Operation &op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:50,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:50,1
    - Dst: SqlPolicyRulePolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: raksha::backends::policy_engine::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - SoufflePolicyChecker::IsModulePolicyCompliant
    - SqlPolicyRulePolicy
    linkageType: ''
    returnType: void
    signature: void TEST(SoufflePolicyCheckerTest, SqlPolicyRuleReturnsTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ir::IRContext::RegisterOperator
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:55,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:55,1
    - Dst: ir::IRContext::RegisterOperator
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:57,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:57,1
    - Dst: ir::IRContext::RegisterOperator
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:59,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:59,1
    - Dst: ir::BlockBuilder::AddOperation
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:64,1
    - Dst: ir::BlockBuilder::AddOperation
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:67,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:68,1
    - Dst: std::vector<std::pair<std::string, ir::Value>>
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:69,1
    - Dst: ir::BlockBuilder::AddOperation
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:71,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:72,1
    - Dst: ir::Module::AddBlock
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:75,1
    - Dst: ir::BlockBuilder::build
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:75,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:79,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:79,1
    - Dst: SqlPolicyRulePolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:80,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:84,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:84,1
    - Dst: SqlPolicyRulePolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 85
    functionName: raksha::backends::policy_engine::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - ir::BlockBuilder::AddOperation
    - raksha::backends::policy_engine::MakeOperationResultValue
    - ir::Module::AddBlock
    - SoufflePolicyChecker::IsModulePolicyCompliant
    - ir::BlockBuilder::build
    - ir::IRContext::RegisterOperator
    - std::make_unique<Operator>
    - SqlPolicyRulePolicy
    - std::vector<std::pair<std::string, ir::Value>>
    linkageType: ''
    returnType: void
    signature: void TEST(SoufflePolicyCheckerTest, SqlPolicyRuleReturnsFalse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:90,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:91,1
    - Dst: DpParameterPolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: raksha::backends::policy_engine::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - SoufflePolicyChecker::IsModulePolicyCompliant
    - DpParameterPolicy
    linkageType: ''
    returnType: void
    signature: void TEST(SoufflePolicyCheckerTest, DpPolicyRuleReturnsTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseProgram
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:102,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:113,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:114,1
    - Dst: DpParameterPolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:114,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:115,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:116,1
    - Dst: DpParameterPolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 117
    functionName: raksha::backends::policy_engine::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - SoufflePolicyChecker::IsModulePolicyCompliant
    - ParseProgram
    - DpParameterPolicy
    linkageType: ''
    returnType: void
    signature: void TEST(SoufflePolicyCheckerTest, DpPolicyRuleReturnsFalse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:44,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: raksha::backends::policy_engine::MakeOperationResultValue
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc
    functionUses: 9
    functionsReached:
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - raksha::backends::policy_engine::MakeOperationResultValue
    linkageType: ''
    returnType: ir::Value
    signature: ir::Value MakeOperationResultValue(const Operation &op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:50,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:50,1
    - Dst: SqlPolicyRulePolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: raksha::backends::policy_engine::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - SoufflePolicyChecker::IsModulePolicyCompliant
    - SqlPolicyRulePolicy
    linkageType: ''
    returnType: void
    signature: void TEST(SoufflePolicyCheckerTest, SqlPolicyRuleReturnsTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ir::IRContext::RegisterOperator
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:55,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:55,1
    - Dst: ir::IRContext::RegisterOperator
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:57,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:57,1
    - Dst: ir::IRContext::RegisterOperator
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:59,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:59,1
    - Dst: ir::BlockBuilder::AddOperation
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:64,1
    - Dst: ir::BlockBuilder::AddOperation
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:67,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:68,1
    - Dst: std::vector<std::pair<std::string, ir::Value>>
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:69,1
    - Dst: ir::BlockBuilder::AddOperation
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:71,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:72,1
    - Dst: ir::Module::AddBlock
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:75,1
    - Dst: ir::BlockBuilder::build
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:75,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:79,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:79,1
    - Dst: SqlPolicyRulePolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:80,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:84,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:84,1
    - Dst: SqlPolicyRulePolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 85
    functionName: raksha::backends::policy_engine::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - ir::BlockBuilder::AddOperation
    - raksha::backends::policy_engine::MakeOperationResultValue
    - ir::Module::AddBlock
    - SoufflePolicyChecker::IsModulePolicyCompliant
    - ir::BlockBuilder::build
    - ir::IRContext::RegisterOperator
    - std::make_unique<Operator>
    - SqlPolicyRulePolicy
    - std::vector<std::pair<std::string, ir::Value>>
    linkageType: ''
    returnType: void
    signature: void TEST(SoufflePolicyCheckerTest, SqlPolicyRuleReturnsFalse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:90,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:91,1
    - Dst: DpParameterPolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: raksha::backends::policy_engine::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - SoufflePolicyChecker::IsModulePolicyCompliant
    - DpParameterPolicy
    linkageType: ''
    returnType: void
    signature: void TEST(SoufflePolicyCheckerTest, DpPolicyRuleReturnsTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseProgram
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:102,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:113,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:114,1
    - Dst: DpParameterPolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:114,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:115,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:116,1
    - Dst: DpParameterPolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 117
    functionName: raksha::backends::policy_engine::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - SoufflePolicyChecker::IsModulePolicyCompliant
    - ParseProgram
    - DpParameterPolicy
    linkageType: ''
    returnType: void
    signature: void TEST(SoufflePolicyCheckerTest, DpPolicyRuleReturnsFalse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:44,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: raksha::backends::policy_engine::MakeOperationResultValue
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc
    functionUses: 11
    functionsReached:
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - raksha::backends::policy_engine::MakeOperationResultValue
    linkageType: ''
    returnType: ir::Value
    signature: ir::Value MakeOperationResultValue(const Operation &op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:50,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:50,1
    - Dst: SqlPolicyRulePolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: raksha::backends::policy_engine::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - SoufflePolicyChecker::IsModulePolicyCompliant
    - SqlPolicyRulePolicy
    linkageType: ''
    returnType: void
    signature: void TEST(SoufflePolicyCheckerTest, SqlPolicyRuleReturnsTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ir::IRContext::RegisterOperator
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:55,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:55,1
    - Dst: ir::IRContext::RegisterOperator
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:57,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:57,1
    - Dst: ir::IRContext::RegisterOperator
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:59,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:59,1
    - Dst: ir::BlockBuilder::AddOperation
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:64,1
    - Dst: ir::BlockBuilder::AddOperation
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:67,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:68,1
    - Dst: std::vector<std::pair<std::string, ir::Value>>
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:69,1
    - Dst: ir::BlockBuilder::AddOperation
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:71,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:72,1
    - Dst: ir::Module::AddBlock
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:75,1
    - Dst: ir::BlockBuilder::build
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:75,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:79,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:79,1
    - Dst: SqlPolicyRulePolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:80,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:84,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:84,1
    - Dst: SqlPolicyRulePolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 85
    functionName: raksha::backends::policy_engine::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - ir::BlockBuilder::AddOperation
    - raksha::backends::policy_engine::MakeOperationResultValue
    - ir::Module::AddBlock
    - SoufflePolicyChecker::IsModulePolicyCompliant
    - ir::BlockBuilder::build
    - ir::IRContext::RegisterOperator
    - std::make_unique<Operator>
    - SqlPolicyRulePolicy
    - std::vector<std::pair<std::string, ir::Value>>
    linkageType: ''
    returnType: void
    signature: void TEST(SoufflePolicyCheckerTest, SqlPolicyRuleReturnsFalse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:90,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:91,1
    - Dst: DpParameterPolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: raksha::backends::policy_engine::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - SoufflePolicyChecker::IsModulePolicyCompliant
    - DpParameterPolicy
    linkageType: ''
    returnType: void
    signature: void TEST(SoufflePolicyCheckerTest, DpPolicyRuleReturnsTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseProgram
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:102,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:113,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:114,1
    - Dst: DpParameterPolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:114,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:115,1
    - Dst: SoufflePolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:116,1
    - Dst: DpParameterPolicy
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 117
    functionName: raksha::backends::policy_engine::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - SoufflePolicyChecker::IsModulePolicyCompliant
    - ParseProgram
    - DpParameterPolicy
    linkageType: ''
    returnType: void
    signature: void TEST(SoufflePolicyCheckerTest, DpPolicyRuleReturnsFalse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:40,1
    - Dst: std::make_unique<ir::Operation>
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:41,1
    - Dst: std::forward<Args>
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:41,1
    - Dst: back
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: raksha::backends::policy_engine::souffle::TestObjectFactory::CreateOperation
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc
    functionUses: 0
    functionsReached:
    - back
    - std::forward<Args>
    - push_back
    - std::make_unique<ir::Operation>
    linkageType: ''
    returnType: ir::Operation
    signature: ir::Operation *CreateOperation(Args &&...a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:48,1
    - Dst: std::make_unique<ir::datalog::IsOperationFact>
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:49,1
    - Dst: raksha::analysis::taint::InferenceRules::GetOutputRulesForOperation
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:50,1
    - Dst: std::forward<Args>
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:50,1
    - Dst: back
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: raksha::backends::policy_engine::souffle::TestObjectFactory::CreateDatalogOperation
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    - raksha::analysis::taint::InferenceRules::GetOutputRulesForOperation
    - push_back
    - back
    - std::make_unique<ir::datalog::IsOperationFact>
    linkageType: ''
    returnType: ir::datalog::IsOperationFact
    signature: ir::datalog::IsOperationFact *CreateDatalogOperation(Args &&...a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:72,1
    - Dst: Accept
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:75,1
    - Dst: DatalogLoweringVisitor::datalog_facts
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:77,1
    - Dst: RakshaDatalogFacts::ToDatalogString
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:77,1
    - Dst: ToDatalogString
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: raksha::backends::policy_engine::souffle::TEST_P
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Accept
    - EXPECT_EQ
    - ToDatalogString
    - DatalogLoweringVisitor::datalog_facts
    - RakshaDatalogFacts::ToDatalogString
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IrOperationLoweringTest, IrOperationLoweringTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:135,1
    - Dst: module_fn
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:136,1
    - Dst: facts_fn
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:137,1
    - Dst: ir::Module::Accept
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:140,1
    - Dst: DatalogLoweringVisitor::datalog_facts
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:140,1
    - Dst: RakshaDatalogFacts::ToDatalogString
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: raksha::backends::policy_engine::souffle::TEST_P
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - module_fn
    - facts_fn
    - DatalogLoweringVisitor::datalog_facts
    - RakshaDatalogFacts::ToDatalogString
    - ir::Module::Accept
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(DatalogLoweringVisitModuleTest, DatalogLoweringVisitModuleTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: operation_adding_fn
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:148,1
    - Dst: ir::Module::AddBlock
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:150,1
    - Dst: ir::BlockBuilder::build
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - operation_adding_fn
    argTypes:
    - std::function<void(ir::BlockBuilder &)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 153
    functionName: raksha::backends::policy_engine::souffle::ModuleWithAddedOperationsFn
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc
    functionUses: 0
    functionsReached:
    - ir::Module::AddBlock
    - operation_adding_fn
    - ir::BlockBuilder::build
    linkageType: ''
    returnType: std::function<ir::Module()>
    signature: "std::function<ir::Module()> ModuleWithAddedOperationsFn(\n    std::function<void(ir::BlockBuilder
      &)> operation_adding_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:40,1
    - Dst: std::make_unique<ir::Operation>
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:41,1
    - Dst: std::forward<Args>
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:41,1
    - Dst: back
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: raksha::backends::policy_engine::souffle::TestObjectFactory::CreateOperation
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc
    functionUses: 0
    functionsReached:
    - back
    - std::forward<Args>
    - push_back
    - std::make_unique<ir::Operation>
    linkageType: ''
    returnType: ir::Operation
    signature: ir::Operation *CreateOperation(Args &&...a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:48,1
    - Dst: std::make_unique<ir::datalog::IsOperationFact>
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:49,1
    - Dst: raksha::analysis::taint::InferenceRules::GetOutputRulesForOperation
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:50,1
    - Dst: std::forward<Args>
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:50,1
    - Dst: back
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: raksha::backends::policy_engine::souffle::TestObjectFactory::CreateDatalogOperation
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    - raksha::analysis::taint::InferenceRules::GetOutputRulesForOperation
    - push_back
    - back
    - std::make_unique<ir::datalog::IsOperationFact>
    linkageType: ''
    returnType: ir::datalog::IsOperationFact
    signature: ir::datalog::IsOperationFact *CreateDatalogOperation(Args &&...a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:72,1
    - Dst: Accept
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:75,1
    - Dst: DatalogLoweringVisitor::datalog_facts
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:77,1
    - Dst: RakshaDatalogFacts::ToDatalogString
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:77,1
    - Dst: ToDatalogString
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: raksha::backends::policy_engine::souffle::TEST_P
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Accept
    - EXPECT_EQ
    - ToDatalogString
    - DatalogLoweringVisitor::datalog_facts
    - RakshaDatalogFacts::ToDatalogString
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IrOperationLoweringTest, IrOperationLoweringTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:135,1
    - Dst: module_fn
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:136,1
    - Dst: facts_fn
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:137,1
    - Dst: ir::Module::Accept
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:140,1
    - Dst: DatalogLoweringVisitor::datalog_facts
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:140,1
    - Dst: RakshaDatalogFacts::ToDatalogString
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: raksha::backends::policy_engine::souffle::TEST_P
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - module_fn
    - facts_fn
    - DatalogLoweringVisitor::datalog_facts
    - RakshaDatalogFacts::ToDatalogString
    - ir::Module::Accept
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(DatalogLoweringVisitModuleTest, DatalogLoweringVisitModuleTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: operation_adding_fn
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:148,1
    - Dst: ir::Module::AddBlock
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:150,1
    - Dst: ir::BlockBuilder::build
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - operation_adding_fn
    argTypes:
    - std::function<void(ir::BlockBuilder &)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 153
    functionName: raksha::backends::policy_engine::souffle::ModuleWithAddedOperationsFn
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc
    functionUses: 0
    functionsReached:
    - ir::Module::AddBlock
    - operation_adding_fn
    - ir::BlockBuilder::build
    linkageType: ''
    returnType: std::function<ir::Module()>
    signature: "std::function<ir::Module()> ModuleWithAddedOperationsFn(\n    std::function<void(ir::BlockBuilder
      &)> operation_adding_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsOperationFact
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:43,1
    - Dst: Operation
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:43,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:44,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:44,1
    - Dst: ResultList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:45,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:45,1
    - Dst: ResultList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:45,1
    - Dst: OperandList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:45,1
    - Dst: AttributeList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:46,1
    - Dst: Attribute
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:47,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::ToString
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:47,1
    - Dst: AttributeList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:48,1
    - Dst: IsOperationFact
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:49,1
    - Dst: Operation
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:50,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:50,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:50,1
    - Dst: ResultList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:51,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:51,1
    - Dst: ResultList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:51,1
    - Dst: OperandList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:52,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:52,1
    - Dst: OperandList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:53,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:53,1
    - Dst: OperandList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:53,1
    - Dst: AttributeList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:54,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:55,1
    - Dst: push_back
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:56,1
    - Dst: ToDatalogFactsFileString
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:56,1
    - Dst: AddIsOperationFact
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:57,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:57,1
    - Dst: raksha::common::utils::CreateTemporaryDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:60,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:61,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:61,1
    - Dst: absl::StatusOr::value
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 63
    functionName: raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::DumpFactsToDirectoryTest
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - Operation
    - absl::StatusOr::ok
    - raksha::analysis::taint::AbstractIfcTags::ToString
    - ToDatalogFactsFileString
    - IsOperationFact
    - raksha::common::utils::CreateTemporaryDirectory
    - AttributeList
    - ResultList
    - Attribute
    - std::move
    - OperandList
    - Symbol
    - AddIsOperationFact
    - CHECK
    - absl::StatusOr::value
    - push_back
    linkageType: ''
    returnType: void
    signature: void DumpFactsToDirectoryTest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:71,1
    - Dst: std::filesystem::remove_all
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::TearDown
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - std::filesystem::remove_all
    - empty
    linkageType: ''
    returnType: void
    signature: void TearDown() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:81,1
    - Dst: path
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' directory'
    argTypes:
    - std::filesystem::path
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::GetFilesInDirectory
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - path
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> GetFilesInDirectory(\n      const std::filesystem::path&
      directory)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:89,1
    - Dst: raksha::utils::test::ReadFileLines
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:89,1
    - Dst: testing::UnorderedElementsAreArray
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:90,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:93,1
    - Dst: raksha::utils::test::ReadFileLines
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:93,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:94,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' directory'
    argTypes:
    - std::filesystem::path
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 97
    functionName: raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::CheckFileContentsInDirectory
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - testing::UnorderedElementsAre
    - raksha::utils::test::ReadFileLines
    - EXPECT_THAT
    - testing::UnorderedElementsAreArray
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: "void CheckFileContentsInDirectory(\n      const std::filesystem::path&
      directory,\n      const std::vector<std::string>& empty_relations = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:113,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:114,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:114,1
    - Dst: std::filesystem::directory_iterator
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:116,1
    - Dst: string
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:116,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:117,1
    - Dst: GetFilesInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:117,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:118,1
    - Dst: CheckFileContentsInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - testing::UnorderedElementsAre
    - CheckFileContentsInDirectory
    - string
    - ASSERT_TRUE
    - std::filesystem::directory_iterator
    - EXPECT_THAT
    - absl::Status::ok
    - DumpFactsToDirectory
    - GetFilesInDirectory
    linkageType: ''
    returnType: void
    signature: "void TEST_F(DumpFactsToDirectoryTest,\n       DefaultInvocationDumpsIsOperationInTempDirectory)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:125,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:126,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:126,1
    - Dst: std::filesystem::directory_iterator
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:128,1
    - Dst: string
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:128,1
    - Dst: GetFilesInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:129,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:130,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:130,1
    - Dst: CheckFileContentsInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 133
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - testing::UnorderedElementsAre
    - CheckFileContentsInDirectory
    - string
    - ASSERT_TRUE
    - std::filesystem::directory_iterator
    - EXPECT_THAT
    - absl::Status::ok
    - DumpFactsToDirectory
    - GetFilesInDirectory
    linkageType: ''
    returnType: void
    signature: void TEST_F(DumpFactsToDirectoryTest, CreatesEmptyRelationsIfRequested)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::CreateTemporaryDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:139,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:140,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:140,1
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:144,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:145,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:145,1
    - Dst: std::filesystem::directory_iterator
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:148,1
    - Dst: std::filesystem::path::string
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:148,1
    - Dst: GetFilesInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:149,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:150,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:150,1
    - Dst: CheckFileContentsInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:152,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:154,1
    - Dst: std::filesystem::remove_all
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 155
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - testing::UnorderedElementsAre
    - CheckFileContentsInDirectory
    - ASSERT_TRUE
    - raksha::common::utils::CreateTemporaryDirectory
    - absl::StatusOr::ok
    - std::filesystem::remove_all
    - std::filesystem::directory_iterator
    - EXPECT_THAT
    - CHECK
    - absl::Status::ok
    - DumpFactsToDirectory
    - GetFilesInDirectory
    - std::filesystem::path::string
    linkageType: ''
    returnType: void
    signature: void TEST_F(DumpFactsToDirectoryTest, CreatesFilesInRequestedDirectory)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:159,1
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:159,1
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:161,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:162,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:162,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:163,1
    - Dst: absl::Status::code
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:163,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:164,1
    - Dst: absl::Status::message
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:165,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 167
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_FALSE
    - std::filesystem::exists
    - ASSERT_FALSE
    - absl::Status::message
    - absl::Status::code
    - absl::Status::ok
    - DumpFactsToDirectory
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: void TEST_F(DumpFactsToDirectoryTest, ReturnsErrorIfRequestedDirectoryDoesNotExist)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:172,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:173,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:173,1
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:175,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:176,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:176,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:177,1
    - Dst: absl::Status::code
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:178,1
    - Dst: absl::Status::message
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:178,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 181
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_FALSE
    - absl::Status::message
    - ASSERT_TRUE
    - absl::Status::code
    - absl::Status::ok
    - DumpFactsToDirectory
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: "void TEST_F(DumpFactsToDirectoryTest,\n       ReturnsErrorIfFactsFileAlreadyExistsInDirectory)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsOperationFact
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:43,1
    - Dst: Operation
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:43,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:44,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:44,1
    - Dst: ResultList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:45,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:45,1
    - Dst: ResultList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:45,1
    - Dst: OperandList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:45,1
    - Dst: AttributeList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:46,1
    - Dst: Attribute
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:47,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::ToString
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:47,1
    - Dst: AttributeList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:48,1
    - Dst: IsOperationFact
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:49,1
    - Dst: Operation
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:50,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:50,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:50,1
    - Dst: ResultList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:51,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:51,1
    - Dst: ResultList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:51,1
    - Dst: OperandList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:52,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:52,1
    - Dst: OperandList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:53,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:53,1
    - Dst: OperandList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:53,1
    - Dst: AttributeList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:54,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:55,1
    - Dst: push_back
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:56,1
    - Dst: ToDatalogFactsFileString
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:56,1
    - Dst: AddIsOperationFact
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:57,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:57,1
    - Dst: raksha::common::utils::CreateTemporaryDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:60,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:61,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:61,1
    - Dst: absl::StatusOr::value
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 63
    functionName: raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::DumpFactsToDirectoryTest
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - Operation
    - absl::StatusOr::ok
    - raksha::analysis::taint::AbstractIfcTags::ToString
    - ToDatalogFactsFileString
    - IsOperationFact
    - raksha::common::utils::CreateTemporaryDirectory
    - AttributeList
    - ResultList
    - Attribute
    - std::move
    - OperandList
    - Symbol
    - AddIsOperationFact
    - CHECK
    - absl::StatusOr::value
    - push_back
    linkageType: ''
    returnType: void
    signature: void DumpFactsToDirectoryTest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:71,1
    - Dst: std::filesystem::remove_all
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::TearDown
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - std::filesystem::remove_all
    - empty
    linkageType: ''
    returnType: void
    signature: void TearDown() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:81,1
    - Dst: path
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' directory'
    argTypes:
    - std::filesystem::path
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::GetFilesInDirectory
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - path
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> GetFilesInDirectory(\n      const std::filesystem::path&
      directory)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:89,1
    - Dst: raksha::utils::test::ReadFileLines
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:89,1
    - Dst: testing::UnorderedElementsAreArray
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:90,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:93,1
    - Dst: raksha::utils::test::ReadFileLines
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:93,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:94,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' directory'
    argTypes:
    - std::filesystem::path
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 97
    functionName: raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::CheckFileContentsInDirectory
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - testing::UnorderedElementsAre
    - raksha::utils::test::ReadFileLines
    - EXPECT_THAT
    - testing::UnorderedElementsAreArray
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: "void CheckFileContentsInDirectory(\n      const std::filesystem::path&
      directory,\n      const std::vector<std::string>& empty_relations = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:113,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:114,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:114,1
    - Dst: std::filesystem::directory_iterator
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:116,1
    - Dst: string
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:116,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:117,1
    - Dst: GetFilesInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:117,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:118,1
    - Dst: CheckFileContentsInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - testing::UnorderedElementsAre
    - CheckFileContentsInDirectory
    - string
    - ASSERT_TRUE
    - std::filesystem::directory_iterator
    - EXPECT_THAT
    - absl::Status::ok
    - DumpFactsToDirectory
    - GetFilesInDirectory
    linkageType: ''
    returnType: void
    signature: "void TEST_F(DumpFactsToDirectoryTest,\n       DefaultInvocationDumpsIsOperationInTempDirectory)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:125,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:126,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:126,1
    - Dst: std::filesystem::directory_iterator
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:128,1
    - Dst: string
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:128,1
    - Dst: GetFilesInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:129,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:130,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:130,1
    - Dst: CheckFileContentsInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 133
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - testing::UnorderedElementsAre
    - CheckFileContentsInDirectory
    - string
    - ASSERT_TRUE
    - std::filesystem::directory_iterator
    - EXPECT_THAT
    - absl::Status::ok
    - DumpFactsToDirectory
    - GetFilesInDirectory
    linkageType: ''
    returnType: void
    signature: void TEST_F(DumpFactsToDirectoryTest, CreatesEmptyRelationsIfRequested)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::CreateTemporaryDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:139,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:140,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:140,1
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:144,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:145,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:145,1
    - Dst: std::filesystem::directory_iterator
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:148,1
    - Dst: std::filesystem::path::string
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:148,1
    - Dst: GetFilesInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:149,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:150,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:150,1
    - Dst: CheckFileContentsInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:152,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:154,1
    - Dst: std::filesystem::remove_all
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 155
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - testing::UnorderedElementsAre
    - CheckFileContentsInDirectory
    - ASSERT_TRUE
    - raksha::common::utils::CreateTemporaryDirectory
    - absl::StatusOr::ok
    - std::filesystem::remove_all
    - std::filesystem::directory_iterator
    - EXPECT_THAT
    - CHECK
    - absl::Status::ok
    - DumpFactsToDirectory
    - GetFilesInDirectory
    - std::filesystem::path::string
    linkageType: ''
    returnType: void
    signature: void TEST_F(DumpFactsToDirectoryTest, CreatesFilesInRequestedDirectory)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:159,1
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:159,1
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:161,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:162,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:162,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:163,1
    - Dst: absl::Status::code
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:163,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:164,1
    - Dst: absl::Status::message
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:165,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 167
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_FALSE
    - std::filesystem::exists
    - ASSERT_FALSE
    - absl::Status::message
    - absl::Status::code
    - absl::Status::ok
    - DumpFactsToDirectory
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: void TEST_F(DumpFactsToDirectoryTest, ReturnsErrorIfRequestedDirectoryDoesNotExist)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:172,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:173,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:173,1
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:175,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:176,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:176,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:177,1
    - Dst: absl::Status::code
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:178,1
    - Dst: absl::Status::message
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:178,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 181
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_FALSE
    - absl::Status::message
    - ASSERT_TRUE
    - absl::Status::code
    - absl::Status::ok
    - DumpFactsToDirectory
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: "void TEST_F(DumpFactsToDirectoryTest,\n       ReturnsErrorIfFactsFileAlreadyExistsInDirectory)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsOperationFact
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:43,1
    - Dst: Operation
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:43,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:44,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:44,1
    - Dst: ResultList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:45,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:45,1
    - Dst: ResultList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:45,1
    - Dst: OperandList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:45,1
    - Dst: AttributeList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:46,1
    - Dst: Attribute
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:47,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::ToString
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:47,1
    - Dst: AttributeList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:48,1
    - Dst: IsOperationFact
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:49,1
    - Dst: Operation
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:50,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:50,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:50,1
    - Dst: ResultList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:51,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:51,1
    - Dst: ResultList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:51,1
    - Dst: OperandList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:52,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:52,1
    - Dst: OperandList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:53,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:53,1
    - Dst: OperandList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:53,1
    - Dst: AttributeList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:54,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:55,1
    - Dst: push_back
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:56,1
    - Dst: ToDatalogFactsFileString
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:56,1
    - Dst: AddIsOperationFact
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:57,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:57,1
    - Dst: raksha::common::utils::CreateTemporaryDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:60,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:61,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:61,1
    - Dst: absl::StatusOr::value
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 63
    functionName: raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::DumpFactsToDirectoryTest
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - Operation
    - absl::StatusOr::ok
    - raksha::analysis::taint::AbstractIfcTags::ToString
    - ToDatalogFactsFileString
    - IsOperationFact
    - raksha::common::utils::CreateTemporaryDirectory
    - AttributeList
    - ResultList
    - Attribute
    - std::move
    - OperandList
    - Symbol
    - AddIsOperationFact
    - CHECK
    - absl::StatusOr::value
    - push_back
    linkageType: ''
    returnType: void
    signature: void DumpFactsToDirectoryTest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:71,1
    - Dst: std::filesystem::remove_all
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::TearDown
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - std::filesystem::remove_all
    - empty
    linkageType: ''
    returnType: void
    signature: void TearDown() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:81,1
    - Dst: path
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' directory'
    argTypes:
    - std::filesystem::path
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::GetFilesInDirectory
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - path
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> GetFilesInDirectory(\n      const std::filesystem::path&
      directory)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:89,1
    - Dst: raksha::utils::test::ReadFileLines
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:89,1
    - Dst: testing::UnorderedElementsAreArray
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:90,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:93,1
    - Dst: raksha::utils::test::ReadFileLines
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:93,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:94,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' directory'
    argTypes:
    - std::filesystem::path
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 97
    functionName: raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::CheckFileContentsInDirectory
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - testing::UnorderedElementsAre
    - raksha::utils::test::ReadFileLines
    - EXPECT_THAT
    - testing::UnorderedElementsAreArray
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: "void CheckFileContentsInDirectory(\n      const std::filesystem::path&
      directory,\n      const std::vector<std::string>& empty_relations = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:113,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:114,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:114,1
    - Dst: std::filesystem::directory_iterator
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:116,1
    - Dst: string
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:116,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:117,1
    - Dst: GetFilesInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:117,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:118,1
    - Dst: CheckFileContentsInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - testing::UnorderedElementsAre
    - CheckFileContentsInDirectory
    - string
    - ASSERT_TRUE
    - std::filesystem::directory_iterator
    - EXPECT_THAT
    - absl::Status::ok
    - DumpFactsToDirectory
    - GetFilesInDirectory
    linkageType: ''
    returnType: void
    signature: "void TEST_F(DumpFactsToDirectoryTest,\n       DefaultInvocationDumpsIsOperationInTempDirectory)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:125,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:126,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:126,1
    - Dst: std::filesystem::directory_iterator
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:128,1
    - Dst: string
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:128,1
    - Dst: GetFilesInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:129,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:130,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:130,1
    - Dst: CheckFileContentsInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 133
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - testing::UnorderedElementsAre
    - CheckFileContentsInDirectory
    - string
    - ASSERT_TRUE
    - std::filesystem::directory_iterator
    - EXPECT_THAT
    - absl::Status::ok
    - DumpFactsToDirectory
    - GetFilesInDirectory
    linkageType: ''
    returnType: void
    signature: void TEST_F(DumpFactsToDirectoryTest, CreatesEmptyRelationsIfRequested)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::CreateTemporaryDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:139,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:140,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:140,1
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:144,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:145,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:145,1
    - Dst: std::filesystem::directory_iterator
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:148,1
    - Dst: std::filesystem::path::string
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:148,1
    - Dst: GetFilesInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:149,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:150,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:150,1
    - Dst: CheckFileContentsInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:152,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:154,1
    - Dst: std::filesystem::remove_all
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 155
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - testing::UnorderedElementsAre
    - CheckFileContentsInDirectory
    - ASSERT_TRUE
    - raksha::common::utils::CreateTemporaryDirectory
    - absl::StatusOr::ok
    - std::filesystem::remove_all
    - std::filesystem::directory_iterator
    - EXPECT_THAT
    - CHECK
    - absl::Status::ok
    - DumpFactsToDirectory
    - GetFilesInDirectory
    - std::filesystem::path::string
    linkageType: ''
    returnType: void
    signature: void TEST_F(DumpFactsToDirectoryTest, CreatesFilesInRequestedDirectory)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:159,1
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:159,1
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:161,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:162,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:162,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:163,1
    - Dst: absl::Status::code
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:163,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:164,1
    - Dst: absl::Status::message
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:165,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 167
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_FALSE
    - std::filesystem::exists
    - ASSERT_FALSE
    - absl::Status::message
    - absl::Status::code
    - absl::Status::ok
    - DumpFactsToDirectory
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: void TEST_F(DumpFactsToDirectoryTest, ReturnsErrorIfRequestedDirectoryDoesNotExist)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:172,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:173,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:173,1
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:175,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:176,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:176,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:177,1
    - Dst: absl::Status::code
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:178,1
    - Dst: absl::Status::message
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:178,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 181
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_FALSE
    - absl::Status::message
    - ASSERT_TRUE
    - absl::Status::code
    - absl::Status::ok
    - DumpFactsToDirectory
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: "void TEST_F(DumpFactsToDirectoryTest,\n       ReturnsErrorIfFactsFileAlreadyExistsInDirectory)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsOperationFact
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:43,1
    - Dst: Operation
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:43,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:44,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:44,1
    - Dst: ResultList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:45,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:45,1
    - Dst: ResultList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:45,1
    - Dst: OperandList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:45,1
    - Dst: AttributeList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:46,1
    - Dst: Attribute
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:47,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::ToString
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:47,1
    - Dst: AttributeList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:48,1
    - Dst: IsOperationFact
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:49,1
    - Dst: Operation
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:50,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:50,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:50,1
    - Dst: ResultList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:51,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:51,1
    - Dst: ResultList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:51,1
    - Dst: OperandList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:52,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:52,1
    - Dst: OperandList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:53,1
    - Dst: Symbol
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:53,1
    - Dst: OperandList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:53,1
    - Dst: AttributeList
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:54,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:55,1
    - Dst: push_back
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:56,1
    - Dst: ToDatalogFactsFileString
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:56,1
    - Dst: AddIsOperationFact
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:57,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:57,1
    - Dst: raksha::common::utils::CreateTemporaryDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:60,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:61,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:61,1
    - Dst: absl::StatusOr::value
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 63
    functionName: raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::DumpFactsToDirectoryTest
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - Operation
    - absl::StatusOr::ok
    - raksha::analysis::taint::AbstractIfcTags::ToString
    - ToDatalogFactsFileString
    - IsOperationFact
    - raksha::common::utils::CreateTemporaryDirectory
    - AttributeList
    - ResultList
    - Attribute
    - std::move
    - OperandList
    - Symbol
    - AddIsOperationFact
    - CHECK
    - absl::StatusOr::value
    - push_back
    linkageType: ''
    returnType: void
    signature: void DumpFactsToDirectoryTest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:71,1
    - Dst: std::filesystem::remove_all
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::TearDown
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - std::filesystem::remove_all
    - empty
    linkageType: ''
    returnType: void
    signature: void TearDown() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:81,1
    - Dst: path
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' directory'
    argTypes:
    - std::filesystem::path
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::GetFilesInDirectory
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - path
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> GetFilesInDirectory(\n      const std::filesystem::path&
      directory)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:89,1
    - Dst: raksha::utils::test::ReadFileLines
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:89,1
    - Dst: testing::UnorderedElementsAreArray
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:90,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:93,1
    - Dst: raksha::utils::test::ReadFileLines
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:93,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:94,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' directory'
    argTypes:
    - std::filesystem::path
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 97
    functionName: raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::CheckFileContentsInDirectory
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - testing::UnorderedElementsAre
    - raksha::utils::test::ReadFileLines
    - EXPECT_THAT
    - testing::UnorderedElementsAreArray
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: "void CheckFileContentsInDirectory(\n      const std::filesystem::path&
      directory,\n      const std::vector<std::string>& empty_relations = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:113,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:114,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:114,1
    - Dst: std::filesystem::directory_iterator
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:116,1
    - Dst: string
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:116,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:117,1
    - Dst: GetFilesInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:117,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:118,1
    - Dst: CheckFileContentsInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - testing::UnorderedElementsAre
    - CheckFileContentsInDirectory
    - string
    - ASSERT_TRUE
    - std::filesystem::directory_iterator
    - EXPECT_THAT
    - absl::Status::ok
    - DumpFactsToDirectory
    - GetFilesInDirectory
    linkageType: ''
    returnType: void
    signature: "void TEST_F(DumpFactsToDirectoryTest,\n       DefaultInvocationDumpsIsOperationInTempDirectory)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:125,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:126,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:126,1
    - Dst: std::filesystem::directory_iterator
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:128,1
    - Dst: string
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:128,1
    - Dst: GetFilesInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:129,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:130,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:130,1
    - Dst: CheckFileContentsInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 133
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - testing::UnorderedElementsAre
    - CheckFileContentsInDirectory
    - string
    - ASSERT_TRUE
    - std::filesystem::directory_iterator
    - EXPECT_THAT
    - absl::Status::ok
    - DumpFactsToDirectory
    - GetFilesInDirectory
    linkageType: ''
    returnType: void
    signature: void TEST_F(DumpFactsToDirectoryTest, CreatesEmptyRelationsIfRequested)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::CreateTemporaryDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:139,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:140,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:140,1
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:144,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:145,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:145,1
    - Dst: std::filesystem::directory_iterator
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:148,1
    - Dst: std::filesystem::path::string
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:148,1
    - Dst: GetFilesInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:149,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:150,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:150,1
    - Dst: CheckFileContentsInDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:152,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:154,1
    - Dst: std::filesystem::remove_all
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 155
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - testing::UnorderedElementsAre
    - CheckFileContentsInDirectory
    - ASSERT_TRUE
    - raksha::common::utils::CreateTemporaryDirectory
    - absl::StatusOr::ok
    - std::filesystem::remove_all
    - std::filesystem::directory_iterator
    - EXPECT_THAT
    - CHECK
    - absl::Status::ok
    - DumpFactsToDirectory
    - GetFilesInDirectory
    - std::filesystem::path::string
    linkageType: ''
    returnType: void
    signature: void TEST_F(DumpFactsToDirectoryTest, CreatesFilesInRequestedDirectory)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:159,1
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:159,1
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:161,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:162,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:162,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:163,1
    - Dst: absl::Status::code
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:163,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:164,1
    - Dst: absl::Status::message
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:165,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 167
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_FALSE
    - std::filesystem::exists
    - ASSERT_FALSE
    - absl::Status::message
    - absl::Status::code
    - absl::Status::ok
    - DumpFactsToDirectory
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: void TEST_F(DumpFactsToDirectoryTest, ReturnsErrorIfRequestedDirectoryDoesNotExist)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:172,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:173,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:173,1
    - Dst: DumpFactsToDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:175,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:176,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:176,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:177,1
    - Dst: absl::Status::code
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:178,1
    - Dst: absl::Status::message
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:178,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 181
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_FALSE
    - absl::Status::message
    - ASSERT_TRUE
    - absl::Status::code
    - absl::Status::ok
    - DumpFactsToDirectory
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: "void TEST_F(DumpFactsToDirectoryTest,\n       ReturnsErrorIfFactsFileAlreadyExistsInDirectory)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ir::Attribute::GetIf
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:45,1
    - Dst: raksha::ir::datalog::Float::Float
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:46,1
    - Dst: auto::value
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:46,1
    - Dst: ir::Attribute::GetIf
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:47,1
    - Dst: raksha::ir::datalog::Number::Number
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:48,1
    - Dst: auto::value
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:48,1
    - Dst: ir::Attribute::GetIf
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:49,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::ToString
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:50,1
    - Dst: auto::value
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:50,1
    - Dst: LOG
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:52,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::ToString
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - attr
    - ssa_names
    argTypes:
    - ir::Attribute
    - ir::SsaNames
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 55
    functionName: raksha::backends::policy_engine::souffle::GetPayloadForAttribute
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc
    functionUses: 0
    functionsReached:
    - raksha::analysis::taint::AbstractIfcTags::ToString
    - auto::value
    - raksha::ir::datalog::Number::Number
    - raksha::ir::datalog::Float::Float
    - LOG
    - ir::Attribute::GetIf
    linkageType: ''
    returnType: DatalogAttributePayload
    signature: "DatalogAttributePayload GetPayloadForAttribute(ir::Attribute attr,\n
      \                                                     ir::SsaNames &ssa_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ir::Operation::op
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:58,1
    - Dst: ir::Operator::name
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:59,1
    - Dst: ir::Operation::inputs
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:66,1
    - Dst: raksha::common::utils::rfold
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:67,1
    - Dst: DatalogOperandList
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:68,1
    - Dst: DatalogOperandList
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:70,1
    - Dst: DatalogSymbol
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:71,1
    - Dst: ValueToString
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:71,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:72,1
    - Dst: ir::Operation::attributes
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:77,1
    - Dst: ir::NamedAttributeMap::begin
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:82,1
    - Dst: ir::NamedAttributeMap::end
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:82,1
    - Dst: std::sort
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:83,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:83,1
    - Dst: std::vector::end
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:83,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:85,1
    - Dst: DatalogAttributeList
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:86,1
    - Dst: DatalogAttributeList
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:89,1
    - Dst: DatalogAttribute
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:90,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:90,1
    - Dst: GetPayloadForAttribute
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:91,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:92,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:93,1
    - Dst: ir::Operator::number_of_return_values
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:96,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:99,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:99,1
    - Dst: raksha::ir::Value::MakeOperationResultValue
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:100,1
    - Dst: raksha::common::utils::rfold
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:102,1
    - Dst: DatalogResultList
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:103,1
    - Dst: DatalogResultList
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:105,1
    - Dst: DatalogSymbol
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:105,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:106,1
    - Dst: AddIsOperationFact
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:114,1
    - Dst: DatalogIsOperationFact
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:115,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:115,1
    - Dst: Unit
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - operation
    argTypes:
    - ir::Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 117
    functionName: raksha::backends::policy_engine::souffle::DatalogLoweringVisitor::PreVisit
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc
    functionUses: 0
    functionsReached:
    - ir::Operation::op
    - std::vector::push_back
    - std::vector::begin
    - DatalogIsOperationFact
    - raksha::common::utils::fold
    - std::move
    - DatalogAttributeList
    - std::vector::end
    - ValueToString
    - std::sort
    - ir::Operator::number_of_return_values
    - ir::NamedAttributeMap::end
    - ir::NamedAttributeMap::begin
    - ir::Operation::attributes
    - DatalogResultList
    - DatalogSymbol
    - ir::Operation::inputs
    - GetOrCreateID
    - raksha::ir::Value::MakeOperationResultValue
    - AddIsOperationFact
    - GetPayloadForAttribute
    - DatalogOperandList
    - ir::Operator::name
    - Unit
    - DatalogAttribute
    - raksha::common::utils::rfold
    linkageType: ''
    returnType: Unit
    signature: Unit DatalogLoweringVisitor::PreVisit(const ir::Operation &operation)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ir::Attribute::GetIf
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:45,1
    - Dst: raksha::ir::datalog::Float::Float
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:46,1
    - Dst: auto::value
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:46,1
    - Dst: ir::Attribute::GetIf
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:47,1
    - Dst: raksha::ir::datalog::Number::Number
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:48,1
    - Dst: auto::value
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:48,1
    - Dst: ir::Attribute::GetIf
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:49,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::ToString
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:50,1
    - Dst: auto::value
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:50,1
    - Dst: LOG
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:52,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::ToString
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - attr
    - ssa_names
    argTypes:
    - ir::Attribute
    - ir::SsaNames
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 55
    functionName: raksha::backends::policy_engine::souffle::GetPayloadForAttribute
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc
    functionUses: 0
    functionsReached:
    - raksha::analysis::taint::AbstractIfcTags::ToString
    - auto::value
    - raksha::ir::datalog::Number::Number
    - raksha::ir::datalog::Float::Float
    - LOG
    - ir::Attribute::GetIf
    linkageType: ''
    returnType: DatalogAttributePayload
    signature: "DatalogAttributePayload GetPayloadForAttribute(ir::Attribute attr,\n
      \                                                     ir::SsaNames &ssa_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ir::Operation::op
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:58,1
    - Dst: ir::Operator::name
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:59,1
    - Dst: ir::Operation::inputs
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:66,1
    - Dst: raksha::common::utils::rfold
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:67,1
    - Dst: DatalogOperandList
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:68,1
    - Dst: DatalogOperandList
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:70,1
    - Dst: DatalogSymbol
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:71,1
    - Dst: ValueToString
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:71,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:72,1
    - Dst: ir::Operation::attributes
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:77,1
    - Dst: ir::NamedAttributeMap::begin
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:82,1
    - Dst: ir::NamedAttributeMap::end
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:82,1
    - Dst: std::sort
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:83,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:83,1
    - Dst: std::vector::end
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:83,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:85,1
    - Dst: DatalogAttributeList
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:86,1
    - Dst: DatalogAttributeList
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:89,1
    - Dst: DatalogAttribute
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:90,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:90,1
    - Dst: GetPayloadForAttribute
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:91,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:92,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:93,1
    - Dst: ir::Operator::number_of_return_values
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:96,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:99,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:99,1
    - Dst: raksha::ir::Value::MakeOperationResultValue
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:100,1
    - Dst: raksha::common::utils::rfold
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:102,1
    - Dst: DatalogResultList
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:103,1
    - Dst: DatalogResultList
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:105,1
    - Dst: DatalogSymbol
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:105,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:106,1
    - Dst: AddIsOperationFact
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:114,1
    - Dst: DatalogIsOperationFact
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:115,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:115,1
    - Dst: Unit
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - operation
    argTypes:
    - ir::Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 117
    functionName: raksha::backends::policy_engine::souffle::DatalogLoweringVisitor::PreVisit
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc
    functionUses: 0
    functionsReached:
    - ir::Operation::op
    - std::vector::push_back
    - std::vector::begin
    - DatalogIsOperationFact
    - raksha::common::utils::fold
    - std::move
    - DatalogAttributeList
    - std::vector::end
    - ValueToString
    - std::sort
    - ir::Operator::number_of_return_values
    - ir::NamedAttributeMap::end
    - ir::NamedAttributeMap::begin
    - ir::Operation::attributes
    - DatalogResultList
    - DatalogSymbol
    - ir::Operation::inputs
    - GetOrCreateID
    - raksha::ir::Value::MakeOperationResultValue
    - AddIsOperationFact
    - GetPayloadForAttribute
    - DatalogOperandList
    - ir::Operator::name
    - Unit
    - DatalogAttribute
    - raksha::common::utils::rfold
    linkageType: ''
    returnType: Unit
    signature: Unit DatalogLoweringVisitor::PreVisit(const ir::Operation &operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:33,1
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:33,1
    - Dst: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:35,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:36,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:36,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:37,1
    - Dst: IsFailedPrecondition
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: raksha::backends::policy_engine::souffle::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - std::filesystem::exists
    - ASSERT_FALSE
    - absl::Status::ok
    - raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
    - IsFailedPrecondition
    linkageType: ''
    returnType: void
    signature: void TEST(WriteFactsToBadDirectory, WriteFactsToBadDirectory)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::CreateTemporaryDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:44,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:45,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: raksha::backends::policy_engine::souffle::CreateTempdirTest::CreateTempdirTest
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc
    functionUses: 0
    functionsReached:
    - raksha::common::utils::CreateTemporaryDirectory
    - absl::StatusOr::ok
    - CHECK
    linkageType: ''
    returnType: void
    signature: void CreateTempdirTest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:50,1
    - Dst: std::filesystem::remove_all
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: raksha::backends::policy_engine::souffle::CreateTempdirTest::TearDown
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc
    functionUses: 0
    functionsReached:
    - std::filesystem::remove_all
    - std::filesystem::exists
    linkageType: ''
    returnType: void
    signature: void TearDown() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:61,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:62,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:62,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:64,1
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:64,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:65,1
    - Dst: std::filesystem::is_regular_file
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:65,1
    - Dst: std::getline
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:73,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 74
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_TRUE
    - std::filesystem::exists
    - std::getline
    - std::ostringstream::str
    - std::filesystem::is_regular_file
    - absl::Status::ok
    - raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
    linkageType: ''
    returnType: void
    signature: void TEST_F(CreateTempdirTest, SuccessfullyCreateFactFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:78,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:79,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:79,1
    - Dst: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:81,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:82,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:82,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:83,1
    - Dst: IsFailedPrecondition
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - absl::Status::ok
    - raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
    - IsFailedPrecondition
    linkageType: ''
    returnType: void
    signature: void TEST_F(CreateTempdirTest, WriteFactsToDirectoryTwice)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:33,1
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:33,1
    - Dst: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:35,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:36,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:36,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:37,1
    - Dst: IsFailedPrecondition
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: raksha::backends::policy_engine::souffle::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - std::filesystem::exists
    - ASSERT_FALSE
    - absl::Status::ok
    - raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
    - IsFailedPrecondition
    linkageType: ''
    returnType: void
    signature: void TEST(WriteFactsToBadDirectory, WriteFactsToBadDirectory)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::CreateTemporaryDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:44,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:45,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: raksha::backends::policy_engine::souffle::CreateTempdirTest::CreateTempdirTest
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc
    functionUses: 0
    functionsReached:
    - raksha::common::utils::CreateTemporaryDirectory
    - absl::StatusOr::ok
    - CHECK
    linkageType: ''
    returnType: void
    signature: void CreateTempdirTest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:50,1
    - Dst: std::filesystem::remove_all
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: raksha::backends::policy_engine::souffle::CreateTempdirTest::TearDown
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc
    functionUses: 0
    functionsReached:
    - std::filesystem::remove_all
    - std::filesystem::exists
    linkageType: ''
    returnType: void
    signature: void TearDown() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:61,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:62,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:62,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:64,1
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:64,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:65,1
    - Dst: std::filesystem::is_regular_file
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:65,1
    - Dst: std::getline
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:73,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 74
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_TRUE
    - std::filesystem::exists
    - std::getline
    - std::ostringstream::str
    - std::filesystem::is_regular_file
    - absl::Status::ok
    - raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
    linkageType: ''
    returnType: void
    signature: void TEST_F(CreateTempdirTest, SuccessfullyCreateFactFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:78,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:79,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:79,1
    - Dst: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:81,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:82,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:82,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:83,1
    - Dst: IsFailedPrecondition
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - absl::Status::ok
    - raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
    - IsFailedPrecondition
    linkageType: ''
    returnType: void
    signature: void TEST_F(CreateTempdirTest, WriteFactsToDirectoryTwice)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:33,1
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:33,1
    - Dst: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:35,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:36,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:36,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:37,1
    - Dst: IsFailedPrecondition
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: raksha::backends::policy_engine::souffle::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - std::filesystem::exists
    - ASSERT_FALSE
    - absl::Status::ok
    - raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
    - IsFailedPrecondition
    linkageType: ''
    returnType: void
    signature: void TEST(WriteFactsToBadDirectory, WriteFactsToBadDirectory)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::CreateTemporaryDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:44,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:45,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: raksha::backends::policy_engine::souffle::CreateTempdirTest::CreateTempdirTest
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc
    functionUses: 0
    functionsReached:
    - raksha::common::utils::CreateTemporaryDirectory
    - absl::StatusOr::ok
    - CHECK
    linkageType: ''
    returnType: void
    signature: void CreateTempdirTest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:50,1
    - Dst: std::filesystem::remove_all
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: raksha::backends::policy_engine::souffle::CreateTempdirTest::TearDown
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc
    functionUses: 0
    functionsReached:
    - std::filesystem::remove_all
    - std::filesystem::exists
    linkageType: ''
    returnType: void
    signature: void TearDown() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:61,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:62,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:62,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:64,1
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:64,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:65,1
    - Dst: std::filesystem::is_regular_file
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:65,1
    - Dst: std::getline
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:73,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 74
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_TRUE
    - std::filesystem::exists
    - std::getline
    - std::ostringstream::str
    - std::filesystem::is_regular_file
    - absl::Status::ok
    - raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
    linkageType: ''
    returnType: void
    signature: void TEST_F(CreateTempdirTest, SuccessfullyCreateFactFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:78,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:79,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:79,1
    - Dst: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:81,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:82,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:82,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:83,1
    - Dst: IsFailedPrecondition
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - absl::Status::ok
    - raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
    - IsFailedPrecondition
    linkageType: ''
    returnType: void
    signature: void TEST_F(CreateTempdirTest, WriteFactsToDirectoryTwice)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:33,1
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:33,1
    - Dst: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:35,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:36,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:36,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:37,1
    - Dst: IsFailedPrecondition
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: raksha::backends::policy_engine::souffle::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - std::filesystem::exists
    - ASSERT_FALSE
    - absl::Status::ok
    - raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
    - IsFailedPrecondition
    linkageType: ''
    returnType: void
    signature: void TEST(WriteFactsToBadDirectory, WriteFactsToBadDirectory)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::CreateTemporaryDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:44,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:45,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: raksha::backends::policy_engine::souffle::CreateTempdirTest::CreateTempdirTest
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc
    functionUses: 0
    functionsReached:
    - raksha::common::utils::CreateTemporaryDirectory
    - absl::StatusOr::ok
    - CHECK
    linkageType: ''
    returnType: void
    signature: void CreateTempdirTest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:50,1
    - Dst: std::filesystem::remove_all
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: raksha::backends::policy_engine::souffle::CreateTempdirTest::TearDown
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc
    functionUses: 0
    functionsReached:
    - std::filesystem::remove_all
    - std::filesystem::exists
    linkageType: ''
    returnType: void
    signature: void TearDown() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:61,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:62,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:62,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:64,1
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:64,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:65,1
    - Dst: std::filesystem::is_regular_file
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:65,1
    - Dst: std::getline
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:73,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 74
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_TRUE
    - std::filesystem::exists
    - std::getline
    - std::ostringstream::str
    - std::filesystem::is_regular_file
    - absl::Status::ok
    - raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
    linkageType: ''
    returnType: void
    signature: void TEST_F(CreateTempdirTest, SuccessfullyCreateFactFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:78,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:79,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:79,1
    - Dst: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:81,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:82,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:82,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:83,1
    - Dst: IsFailedPrecondition
      Src: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: raksha::backends::policy_engine::souffle::TEST_F
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - absl::Status::ok
    - raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
    - IsFailedPrecondition
    linkageType: ''
    returnType: void
    signature: void TEST_F(CreateTempdirTest, WriteFactsToDirectoryTwice)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::backends::policy_engine::souffle::DatalogLoweringVisitor::DatalogLoweringVisitor
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DatalogLoweringVisitor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ssa_names
    argTypes:
    - ir::SsaNames
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: raksha::backends::policy_engine::souffle::DatalogLoweringVisitor::DatalogLoweringVisitor
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void DatalogLoweringVisitor(ir::SsaNames ssa_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: '&datalog_facts()'
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RakshaDatalogFacts
    signature: RakshaDatalogFacts &datalog_facts()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::backends::policy_engine::souffle::DatalogLoweringVisitor::DatalogLoweringVisitor
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DatalogLoweringVisitor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ssa_names
    argTypes:
    - ir::SsaNames
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: raksha::backends::policy_engine::souffle::DatalogLoweringVisitor::DatalogLoweringVisitor
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void DatalogLoweringVisitor(ir::SsaNames ssa_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: '&datalog_facts()'
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RakshaDatalogFacts
    signature: RakshaDatalogFacts &datalog_facts()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/raksha/src/backends/policy_engine/souffle/utils.cc:30,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/souffle/utils.cc:30,1
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/utils.cc:31,1
    - Dst: absl::FailedPreconditionError
      Src: /src/raksha/src/backends/policy_engine/souffle/utils.cc:32,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/souffle/utils.cc:33,1
    - Dst: absl::FailedPreconditionError
      Src: /src/raksha/src/backends/policy_engine/souffle/utils.cc:38,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/souffle/utils.cc:39,1
    - Dst: std::strerror
      Src: /src/raksha/src/backends/policy_engine/souffle/utils.cc:40,1
    - Dst: absl::OkStatus
      Src: /src/raksha/src/backends/policy_engine/souffle/utils.cc:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - facts_directory_path
    - relation_name
    - facts_string
    argTypes:
    - std::filesystem::path
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 45
    functionName: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/utils.cc
    functionUses: 12
    functionsReached:
    - std::strerror
    - std::filesystem::exists
    - absl::OkStatus
    - absl::FailedPreconditionError
    - std::string
    - absl::StrFormat
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status WriteFactsStringToFactsFile(\n    const std::filesystem::path
      &facts_directory_path,\n    absl::string_view relation_name, absl::string_view
      facts_string)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/raksha/src/backends/policy_engine/souffle/utils.cc:30,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/souffle/utils.cc:30,1
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/utils.cc:31,1
    - Dst: absl::FailedPreconditionError
      Src: /src/raksha/src/backends/policy_engine/souffle/utils.cc:32,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/souffle/utils.cc:33,1
    - Dst: absl::FailedPreconditionError
      Src: /src/raksha/src/backends/policy_engine/souffle/utils.cc:38,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/souffle/utils.cc:39,1
    - Dst: std::strerror
      Src: /src/raksha/src/backends/policy_engine/souffle/utils.cc:40,1
    - Dst: absl::OkStatus
      Src: /src/raksha/src/backends/policy_engine/souffle/utils.cc:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - facts_directory_path
    - relation_name
    - facts_string
    argTypes:
    - std::filesystem::path
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 45
    functionName: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/utils.cc
    functionUses: 12
    functionsReached:
    - std::strerror
    - std::filesystem::exists
    - absl::OkStatus
    - absl::FailedPreconditionError
    - std::string
    - absl::StrFormat
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status WriteFactsStringToFactsFile(\n    const std::filesystem::path
      &facts_directory_path,\n    absl::string_view relation_name, absl::string_view
      facts_string)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetPolicyFactName
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:47,1
    - Dst: GetPolicyString
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:49,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:50,1
    - Dst: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:51,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:53,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:53,1
    - Dst: Accept
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:58,1
    - Dst: DatalogLoweringVisitor::datalog_facts
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:60,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:62,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:62,1
    - Dst: GetPolicyAnalysisChecker
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:65,1
    - Dst: setenv
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:69,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:70,1
    - Dst: std::unique_ptr::loadAll
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:71,1
    - Dst: string
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:71,1
    - Dst: std::unique_ptr::run
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:72,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:74,1
    - Dst: std::unique_ptr::getRelation
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:74,1
    - Dst: LOG
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:78,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:81,1
    - Dst: std::unique_ptr::getRelation
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:81,1
    - Dst: Relation*::size
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:82,1
    - Dst: size
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - ' module'
    - ' policy'
    - ' facts_directory'
    argTypes:
    - ir::Module
    - Policy
    - std::filesystem::path
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 83
    functionName: raksha::backends::policy_engine::IsModulePolicyCompliantHelper
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc
    functionUses: 0
    functionsReached:
    - Accept
    - ABSL_DIE_IF_NULL
    - std::unique_ptr::run
    - GetPolicyAnalysisChecker
    - Relation*::size
    - setenv
    - std::unique_ptr::loadAll
    - string
    - GetPolicyFactName
    - DatalogLoweringVisitor::datalog_facts
    - absl::Status::ok
    - CHECK
    - raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
    - GetPolicyString
    - LOG
    - size
    - std::unique_ptr::getRelation
    linkageType: ''
    returnType: bool
    signature: "bool IsModulePolicyCompliantHelper(\n    const ir::Module& module,
      const Policy& policy,\n    const std::filesystem::path& facts_directory)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::CreateTemporaryDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:88,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:89,1
    - Dst: LOG
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:90,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:90,1
    - Dst: absl::StatusOr::status
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:92,1
    - Dst: IsModulePolicyCompliantHelper
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:95,1
    - Dst: std::filesystem::remove_all
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' module'
    - ' policy'
    argTypes:
    - ir::Module
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 98
    functionName: raksha::backends::policy_engine::SoufflePolicyChecker::IsModulePolicyCompliant
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc
    functionUses: 0
    functionsReached:
    - absl::StatusOr::status
    - raksha::common::utils::CreateTemporaryDirectory
    - absl::StatusOr::ok
    - std::filesystem::remove_all
    - LOG
    - IsModulePolicyCompliantHelper
    - absl::StrFormat
    linkageType: ''
    returnType: bool
    signature: "bool SoufflePolicyChecker::IsModulePolicyCompliant(const ir::Module&
      module,\n                                                   const Policy& policy)
      const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetPolicyFactName
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:47,1
    - Dst: GetPolicyString
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:49,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:50,1
    - Dst: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:51,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:53,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:53,1
    - Dst: Accept
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:58,1
    - Dst: DatalogLoweringVisitor::datalog_facts
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:60,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:62,1
    - Dst: absl::Status::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:62,1
    - Dst: GetPolicyAnalysisChecker
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:65,1
    - Dst: setenv
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:69,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:70,1
    - Dst: std::unique_ptr::loadAll
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:71,1
    - Dst: string
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:71,1
    - Dst: std::unique_ptr::run
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:72,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:74,1
    - Dst: std::unique_ptr::getRelation
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:74,1
    - Dst: LOG
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:78,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:81,1
    - Dst: std::unique_ptr::getRelation
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:81,1
    - Dst: Relation*::size
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:82,1
    - Dst: size
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - ' module'
    - ' policy'
    - ' facts_directory'
    argTypes:
    - ir::Module
    - Policy
    - std::filesystem::path
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 83
    functionName: raksha::backends::policy_engine::IsModulePolicyCompliantHelper
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc
    functionUses: 0
    functionsReached:
    - Accept
    - ABSL_DIE_IF_NULL
    - std::unique_ptr::run
    - GetPolicyAnalysisChecker
    - Relation*::size
    - setenv
    - std::unique_ptr::loadAll
    - string
    - GetPolicyFactName
    - DatalogLoweringVisitor::datalog_facts
    - absl::Status::ok
    - CHECK
    - raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
    - GetPolicyString
    - LOG
    - size
    - std::unique_ptr::getRelation
    linkageType: ''
    returnType: bool
    signature: "bool IsModulePolicyCompliantHelper(\n    const ir::Module& module,
      const Policy& policy,\n    const std::filesystem::path& facts_directory)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::CreateTemporaryDirectory
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:88,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:89,1
    - Dst: LOG
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:90,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:90,1
    - Dst: absl::StatusOr::status
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:92,1
    - Dst: IsModulePolicyCompliantHelper
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:95,1
    - Dst: std::filesystem::remove_all
      Src: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' module'
    - ' policy'
    argTypes:
    - ir::Module
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 98
    functionName: raksha::backends::policy_engine::SoufflePolicyChecker::IsModulePolicyCompliant
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc
    functionUses: 0
    functionsReached:
    - absl::StatusOr::status
    - raksha::common::utils::CreateTemporaryDirectory
    - absl::StatusOr::ok
    - std::filesystem::remove_all
    - LOG
    - IsModulePolicyCompliantHelper
    - absl::StrFormat
    linkageType: ''
    returnType: bool
    signature: "bool SoufflePolicyChecker::IsModulePolicyCompliant(const ir::Module&
      module,\n                                                   const Policy& policy)
      const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:56,1
    - Dst: absl::NotFoundError
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:57,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:58,1
    - Dst: std::filesystem::path::string
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:58,1
    - Dst: absl::FailedPreconditionError
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:63,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:63,1
    - Dst: std::filesystem::path::string
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:64,1
    - Dst: strerror
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:64,1
    - Dst: std::ifstream::rdbuf
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:69,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - file_path
    argTypes:
    - std::filesystem::path
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 71
    functionName: ReadFileContents
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc
    functionUses: 1
    functionsReached:
    - strerror
    - std::filesystem::exists
    - std::ifstream::rdbuf
    - std::ostringstream::str
    - absl::FailedPreconditionError
    - absl::StrCat
    - absl::NotFoundError
    - std::filesystem::path::string
    linkageType: ''
    returnType: absl::StatusOr<std::string>
    signature: absl::StatusOr<std::string> ReadFileContents(std::filesystem::path
      file_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - ReturnCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: UnwrapExitCode
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int UnwrapExitCode(ReturnCode code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReadFileContents
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:85,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:86,1
    - Dst: ParseProgram
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:87,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:88,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:89,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:90,1
    - Dst: absl::StatusOr::status
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ir_path
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: GetIrGraphComponentsFromIrPath
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc
    functionUses: 0
    functionsReached:
    - absl::StatusOr::status
    - ParseProgram
    - absl::StatusOr::ok
    - std::move
    - ReadFileContents
    linkageType: ''
    returnType: absl::StatusOr<IrGraphComponents>
    signature: "absl::StatusOr<IrGraphComponents> GetIrGraphComponentsFromIrPath(\n
      \   absl::string_view ir_path)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReadFileContents
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:98,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:99,1
    - Dst: std::make_unique<raksha::ir::IRContext>
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:101,1
    - Dst: raksha::ir::ProtoToIR::Convert
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:103,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:104,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:106,1
    - Dst: absl::StatusOr::value
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:106,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:107,1
    - Dst: absl::StatusOr::value
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:107,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:108,1
    - Dst: absl::StatusOr::status
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:110,1
    - Dst: LOG
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:113,1
    - Dst: absl::StatusOr::status
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:113,1
    - Dst: absl::StatusOr::status
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - proto_path
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 116
    functionName: GetIrGraphComponentsFromProtoPath
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc
    functionUses: 0
    functionsReached:
    - absl::StatusOr::status
    - raksha::ir::ProtoToIR::Convert
    - absl::StatusOr::ok
    - std::move
    - LOG
    - absl::StatusOr::value
    - std::make_unique<raksha::ir::IRContext>
    - ReadFileContents
    linkageType: ''
    returnType: absl::StatusOr<IrGraphComponents>
    signature: "absl::StatusOr<IrGraphComponents> GetIrGraphComponentsFromProtoPath(\n
      \   absl::string_view proto_path)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:56,1
    - Dst: absl::NotFoundError
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:57,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:58,1
    - Dst: std::filesystem::path::string
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:58,1
    - Dst: absl::FailedPreconditionError
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:63,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:63,1
    - Dst: std::filesystem::path::string
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:64,1
    - Dst: strerror
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:64,1
    - Dst: std::ifstream::rdbuf
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:69,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - file_path
    argTypes:
    - std::filesystem::path
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 71
    functionName: ReadFileContents
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc
    functionUses: 3
    functionsReached:
    - strerror
    - std::filesystem::exists
    - std::ifstream::rdbuf
    - std::ostringstream::str
    - absl::FailedPreconditionError
    - absl::StrCat
    - absl::NotFoundError
    - std::filesystem::path::string
    linkageType: ''
    returnType: absl::StatusOr<std::string>
    signature: absl::StatusOr<std::string> ReadFileContents(std::filesystem::path
      file_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - ReturnCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: UnwrapExitCode
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: int
    signature: int UnwrapExitCode(ReturnCode code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReadFileContents
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:85,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:86,1
    - Dst: ParseProgram
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:87,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:88,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:89,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:90,1
    - Dst: absl::StatusOr::status
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ir_path
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: GetIrGraphComponentsFromIrPath
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc
    functionUses: 0
    functionsReached:
    - absl::StatusOr::status
    - ParseProgram
    - absl::StatusOr::ok
    - std::move
    - ReadFileContents
    linkageType: ''
    returnType: absl::StatusOr<IrGraphComponents>
    signature: "absl::StatusOr<IrGraphComponents> GetIrGraphComponentsFromIrPath(\n
      \   absl::string_view ir_path)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReadFileContents
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:98,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:99,1
    - Dst: std::make_unique<raksha::ir::IRContext>
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:101,1
    - Dst: raksha::ir::ProtoToIR::Convert
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:103,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:104,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:106,1
    - Dst: absl::StatusOr::value
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:106,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:107,1
    - Dst: absl::StatusOr::value
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:107,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:108,1
    - Dst: absl::StatusOr::status
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:110,1
    - Dst: LOG
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:113,1
    - Dst: absl::StatusOr::status
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:113,1
    - Dst: absl::StatusOr::status
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - proto_path
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 116
    functionName: GetIrGraphComponentsFromProtoPath
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc
    functionUses: 0
    functionsReached:
    - absl::StatusOr::status
    - raksha::ir::ProtoToIR::Convert
    - absl::StatusOr::ok
    - std::move
    - LOG
    - absl::StatusOr::value
    - std::make_unique<raksha::ir::IRContext>
    - ReadFileContents
    linkageType: ''
    returnType: absl::StatusOr<IrGraphComponents>
    signature: "absl::StatusOr<IrGraphComponents> GetIrGraphComponentsFromProtoPath(\n
      \   absl::string_view proto_path)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: absl::SetProgramUsageMessage
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:126,1
    - Dst: absl::ParseCommandLine
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:127,1
    - Dst: absl::GetFlag
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:129,1
    - Dst: absl::GetFlag
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:130,1
    - Dst: std::optional::has_value
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:132,1
    - Dst: std::optional::has_value
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:132,1
    - Dst: std::optional::has_value
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:133,1
    - Dst: LOG
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:134,1
    - Dst: LOG
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:136,1
    - Dst: UnwrapExitCode
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:139,1
    - Dst: std::optional::has_value
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:144,1
    - Dst: GetIrGraphComponentsFromIrPath
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:144,1
    - Dst: GetIrGraphComponentsFromProtoPath
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:145,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:146,1
    - Dst: LOG
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:147,1
    - Dst: absl::StatusOr::status
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:147,1
    - Dst: UnwrapExitCode
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:148,1
    - Dst: absl::GetFlag
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:154,1
    - Dst: absl::GetFlag
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:155,1
    - Dst: SoufflePolicyChecker
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:156,1
    - Dst: absl::StatusOr::value
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:157,1
    - Dst: absl::GetFlag
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:158,1
    - Dst: ReadFileContents
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:161,1
    - Dst: absl::GetFlag
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:161,1
    - Dst: absl::GetFlag
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:162,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:163,1
    - Dst: LOG
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:164,1
    - Dst: absl::StatusOr::status
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:165,1
    - Dst: UnwrapExitCode
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:166,1
    - Dst: SoufflePolicyChecker
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:169,1
    - Dst: absl::StatusOr::value
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:170,1
    - Dst: absl::GetFlag
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:171,1
    - Dst: absl::GetFlag
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:172,1
    - Dst: absl::GetFlag
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:173,1
    - Dst: absl::GetFlag
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:174,1
    - Dst: SoufflePolicyChecker
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:176,1
    - Dst: absl::StatusOr::value
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:177,1
    - Dst: LOG
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:179,1
    - Dst: LOG
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:185,1
    - Dst: UnwrapExitCode
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:186,1
    - Dst: LOG
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:188,1
    - Dst: UnwrapExitCode
      Src: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc:189,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 191
    functionName: main
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc
    functionUses: 0
    functionsReached:
    - absl::ParseCommandLine
    - absl::GetFlag
    - absl::SetProgramUsageMessage
    - GetIrGraphComponentsFromIrPath
    - absl::StatusOr::status
    - SoufflePolicyChecker
    - std::optional::has_value
    - GetIrGraphComponentsFromProtoPath
    - absl::StatusOr::ok
    - LOG
    - absl::StatusOr::value
    - UnwrapExitCode
    - ReadFileContents
    linkageType: ''
    returnType: int
    signature: int main(int argc, char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:34,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:36,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:37,1
    - Dst: ToDatalogFactsFileString
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - facts_path
    - relation_name
    - facts
    argTypes:
    - std::filesystem::path
    - absl::string_view
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: raksha::backends::policy_engine::souffle::WriteFactsToFile
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc
    functionUses: 0
    functionsReached:
    - absl::StrAppend
    - absl::StrJoin
    - raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
    - ToDatalogFactsFileString
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status WriteFactsToFile(const std::filesystem::path &facts_path,\n
      \                             absl::string_view relation_name, const F &facts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:34,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:36,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:37,1
    - Dst: ToDatalogFactsFileString
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - facts_path
    - relation_name
    - facts
    argTypes:
    - std::filesystem::path
    - absl::string_view
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: raksha::backends::policy_engine::souffle::WriteFactsToFile
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc
    functionUses: 0
    functionsReached:
    - absl::StrAppend
    - absl::StrJoin
    - raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
    - ToDatalogFactsFileString
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status WriteFactsToFile(const std::filesystem::path &facts_path,\n
      \                             absl::string_view relation_name, const F &facts)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:48,1
    - Dst: absl::FailedPreconditionError
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:49,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:50,1
    - Dst: WriteFactsToFile
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:54,1
    - Dst: auto::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:55,1
    - Dst: WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:59,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:62,1
    - Dst: auto::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - facts_path
    - empty_relations
    argTypes:
    - std::filesystem::path
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 64
    functionName: raksha::backends::policy_engine::souffle::RakshaDatalogFacts::DumpFactsToDirectory
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc
    functionUses: 0
    functionsReached:
    - std::filesystem::exists
    - WriteFactsStringToFactsFile
    - auto::ok
    - WriteFactsToFile
    - CHECK
    - absl::FailedPreconditionError
    - absl::StrFormat
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status RakshaDatalogFacts::DumpFactsToDirectory(\n    const
      std::filesystem::path &facts_path,\n    const std::vector<std::string> &empty_relations)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:34,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:36,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:37,1
    - Dst: ToDatalogFactsFileString
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - facts_path
    - relation_name
    - facts
    argTypes:
    - std::filesystem::path
    - absl::string_view
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: raksha::backends::policy_engine::souffle::WriteFactsToFile
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc
    functionUses: 0
    functionsReached:
    - absl::StrAppend
    - absl::StrJoin
    - raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
    - ToDatalogFactsFileString
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status WriteFactsToFile(const std::filesystem::path &facts_path,\n
      \                             absl::string_view relation_name, const F &facts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:34,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:36,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:37,1
    - Dst: ToDatalogFactsFileString
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - facts_path
    - relation_name
    - facts
    argTypes:
    - std::filesystem::path
    - absl::string_view
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: raksha::backends::policy_engine::souffle::WriteFactsToFile
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc
    functionUses: 0
    functionsReached:
    - absl::StrAppend
    - absl::StrJoin
    - raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
    - ToDatalogFactsFileString
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status WriteFactsToFile(const std::filesystem::path &facts_path,\n
      \                             absl::string_view relation_name, const F &facts)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:48,1
    - Dst: absl::FailedPreconditionError
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:49,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:50,1
    - Dst: WriteFactsToFile
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:54,1
    - Dst: auto::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:55,1
    - Dst: WriteFactsStringToFactsFile
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:59,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:62,1
    - Dst: auto::ok
      Src: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - facts_path
    - empty_relations
    argTypes:
    - std::filesystem::path
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 64
    functionName: raksha::backends::policy_engine::souffle::RakshaDatalogFacts::DumpFactsToDirectory
    functionSourceFile: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc
    functionUses: 0
    functionsReached:
    - std::filesystem::exists
    - WriteFactsStringToFactsFile
    - auto::ok
    - WriteFactsToFile
    - CHECK
    - absl::FailedPreconditionError
    - absl::StrFormat
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status RakshaDatalogFacts::DumpFactsToDirectory(\n    const
      std::filesystem::path &facts_path,\n    const std::vector<std::string> &empty_relations)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.h:20,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.h:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - inference_rules
    - egress_operation_names
    argTypes:
    - analysis::taint::InferenceRules
    - absl::flat_hash_set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: raksha::backends::policy_engine::AbstractInterpretationPolicyChecker::AbstractInterpretationPolicyChecker
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void AbstractInterpretationPolicyChecker(\n      analysis::taint::InferenceRules
      inference_rules,\n      absl::flat_hash_set<std::string> egress_operation_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.h:20,1
    - Dst: std::move
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.h:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - inference_rules
    - egress_operation_names
    argTypes:
    - analysis::taint::InferenceRules
    - absl::flat_hash_set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: raksha::backends::policy_engine::AbstractInterpretationPolicyChecker::AbstractInterpretationPolicyChecker
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void AbstractInterpretationPolicyChecker(\n      analysis::taint::InferenceRules
      inference_rules,\n      absl::flat_hash_set<std::string> egress_operation_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TaintAnalysis
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc:10,1
    - Dst: raksha::analysis::taint::AbstractSemantics::AbstractSemantics
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - ir::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 15
    functionName: raksha::backends::policy_engine::AbstractInterpretationPolicyChecker::ComputeIfcTags
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc
    functionUses: 0
    functionsReached:
    - raksha::analysis::taint::AbstractSemantics::AbstractSemantics
    - TaintAnalysis
    linkageType: ''
    returnType: TaintAnalysis::ValueStateMap
    signature: "TaintAnalysis::ValueStateMap AbstractInterpretationPolicyChecker::ComputeIfcTags(\n
      \   const ir::Module& module) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::AbstractInterpretationPolicyChecker::ComputeIfcTags
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc:19,1
    - Dst: blocks
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc:22,1
    - Dst: operations
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc:23,1
    - Dst: contains
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc:24,1
    - Dst: op
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc:24,1
    - Dst: inputs
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc:25,1
    - Dst: auto::find
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc:26,1
    - Dst: auto::end
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc:28,1
    - Dst: auto::second::HasNoSecrecy
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc:29,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - ' module'
    - ' policy'
    argTypes:
    - ir::Module
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 36
    functionName: raksha::backends::policy_engine::AbstractInterpretationPolicyChecker::IsModulePolicyCompliant
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc
    functionUses: 0
    functionsReached:
    - op
    - auto::find
    - operations
    - auto::end
    - contains
    - auto::second::HasNoSecrecy
    - inputs
    - raksha::backends::policy_engine::AbstractInterpretationPolicyChecker::ComputeIfcTags
    - blocks
    linkageType: ''
    returnType: bool
    signature: "bool AbstractInterpretationPolicyChecker::IsModulePolicyCompliant(\n
      \   const ir::Module& module, const Policy& policy) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TaintAnalysis
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc:10,1
    - Dst: raksha::analysis::taint::AbstractSemantics::AbstractSemantics
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - ir::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 15
    functionName: raksha::backends::policy_engine::AbstractInterpretationPolicyChecker::ComputeIfcTags
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc
    functionUses: 1
    functionsReached:
    - raksha::analysis::taint::AbstractSemantics::AbstractSemantics
    - TaintAnalysis
    linkageType: ''
    returnType: TaintAnalysis::ValueStateMap
    signature: "TaintAnalysis::ValueStateMap AbstractInterpretationPolicyChecker::ComputeIfcTags(\n
      \   const ir::Module& module) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::AbstractInterpretationPolicyChecker::ComputeIfcTags
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc:19,1
    - Dst: blocks
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc:22,1
    - Dst: operations
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc:23,1
    - Dst: contains
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc:24,1
    - Dst: op
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc:24,1
    - Dst: inputs
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc:25,1
    - Dst: auto::find
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc:26,1
    - Dst: auto::end
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc:28,1
    - Dst: auto::second::HasNoSecrecy
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc:29,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - ' module'
    - ' policy'
    argTypes:
    - ir::Module
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 36
    functionName: raksha::backends::policy_engine::AbstractInterpretationPolicyChecker::IsModulePolicyCompliant
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc
    functionUses: 0
    functionsReached:
    - op
    - auto::find
    - operations
    - auto::end
    - contains
    - auto::second::HasNoSecrecy
    - inputs
    - raksha::backends::policy_engine::AbstractInterpretationPolicyChecker::ComputeIfcTags
    - blocks
    linkageType: ''
    returnType: bool
    signature: "bool AbstractInterpretationPolicyChecker::IsModulePolicyCompliant(\n
      \   const ir::Module& module, const Policy& policy) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:49,1
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:49,1
    - Dst: raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:50,1
    - Dst: module
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::AbstractInterpretationPolicyCheckerTest
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
    - module
    - GetParam
    linkageType: ''
    returnType: void
    signature: void AbstractInterpretationPolicyCheckerTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: '& module() const'
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    linkageType: ''
    returnType: ir::Module
    signature: ir::Module & module() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:56,1
    - Dst: ssa_names::get
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::ssa_names
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - ssa_names::get
    linkageType: ''
    returnType: ir::SsaNames
    signature: ir::SsaNames * ssa_names() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: '& inference_rules() const'
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: InferenceRules
    signature: InferenceRules & inference_rules() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: google::protobuf::TextFormat::Parser
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:62,1
    - Dst: std::string
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:63,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:64,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - ir::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 1
    functionsReached:
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - google::protobuf::TextFormat::Parser
    - std::string
    - CHECK
    linkageType: ''
    returnType: InferenceRules
    signature: InferenceRules BuildInferenceRules(const ir::Module& module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inference_rules
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:169,1
    - Dst: AbstractInterpretationPolicyChecker::ComputeIfcTags
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:170,1
    - Dst: module
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:170,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:171,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:172,1
    - Dst: EquivalentToValueForSsaNameKey
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:172,1
    - Dst: ssa_names
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:172,1
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: raksha::backends::policy_engine::TEST_P
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - inference_rules
    - EquivalentToValueForSsaNameKey
    - UnorderedPointwise
    - AbstractInterpretationPolicyChecker::ComputeIfcTags
    - EXPECT_THAT
    - ssa_names
    - module
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractInterpretationPolicyCheckerTest, ExpectedFixpointIsComputed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inference_rules
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:178,1
    - Dst: std::string
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:178,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:180,1
    - Dst: AbstractInterpretationPolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:180,1
    - Dst: module
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:180,1
    - Dst: Eq
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:181,1
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: raksha::backends::policy_engine::TEST_P
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - inference_rules
    - AbstractInterpretationPolicyChecker::IsModulePolicyCompliant
    - Eq
    - EXPECT_THAT
    - module
    - std::string
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractInterpretationPolicyCheckerTest, PolicyViolationCheckIsCorrect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:197,1
    - Dst: raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:200,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:203,1
    - Dst: AbstractInterpretationPolicyChecker
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:203,1
    - Dst: Eq
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:206,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:207,1
    - Dst: AbstractInterpretationPolicyChecker
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:208,1
    - Dst: Eq
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:210,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:211,1
    - Dst: AbstractInterpretationPolicyChecker
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:211,1
    - Dst: Eq
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:214,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:215,1
    - Dst: AbstractInterpretationPolicyChecker
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:216,1
    - Dst: Eq
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 219
    functionName: raksha::backends::policy_engine::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - Eq
    - AbstractInterpretationPolicyChecker
    - EXPECT_THAT
    - raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
    linkageType: ''
    returnType: void
    signature: "void TEST(AbstractInterpretationPolicyCheckerTest,\n     PolicyViolationCheckRespectsEgress)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:49,1
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:49,1
    - Dst: raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:50,1
    - Dst: module
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::AbstractInterpretationPolicyCheckerTest
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
    - module
    - GetParam
    linkageType: ''
    returnType: void
    signature: void AbstractInterpretationPolicyCheckerTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: '& module() const'
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    linkageType: ''
    returnType: ir::Module
    signature: ir::Module & module() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:56,1
    - Dst: ssa_names::get
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::ssa_names
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - ssa_names::get
    linkageType: ''
    returnType: ir::SsaNames
    signature: ir::SsaNames * ssa_names() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: '& inference_rules() const'
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: InferenceRules
    signature: InferenceRules & inference_rules() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: google::protobuf::TextFormat::Parser
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:62,1
    - Dst: std::string
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:63,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:64,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - ir::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 3
    functionsReached:
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - google::protobuf::TextFormat::Parser
    - std::string
    - CHECK
    linkageType: ''
    returnType: InferenceRules
    signature: InferenceRules BuildInferenceRules(const ir::Module& module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inference_rules
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:169,1
    - Dst: AbstractInterpretationPolicyChecker::ComputeIfcTags
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:170,1
    - Dst: module
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:170,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:171,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:172,1
    - Dst: EquivalentToValueForSsaNameKey
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:172,1
    - Dst: ssa_names
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:172,1
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: raksha::backends::policy_engine::TEST_P
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - inference_rules
    - EquivalentToValueForSsaNameKey
    - UnorderedPointwise
    - AbstractInterpretationPolicyChecker::ComputeIfcTags
    - EXPECT_THAT
    - ssa_names
    - module
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractInterpretationPolicyCheckerTest, ExpectedFixpointIsComputed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inference_rules
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:178,1
    - Dst: std::string
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:178,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:180,1
    - Dst: AbstractInterpretationPolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:180,1
    - Dst: module
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:180,1
    - Dst: Eq
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:181,1
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: raksha::backends::policy_engine::TEST_P
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - inference_rules
    - AbstractInterpretationPolicyChecker::IsModulePolicyCompliant
    - Eq
    - EXPECT_THAT
    - module
    - std::string
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractInterpretationPolicyCheckerTest, PolicyViolationCheckIsCorrect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:197,1
    - Dst: raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:200,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:203,1
    - Dst: AbstractInterpretationPolicyChecker
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:203,1
    - Dst: Eq
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:206,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:207,1
    - Dst: AbstractInterpretationPolicyChecker
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:208,1
    - Dst: Eq
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:210,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:211,1
    - Dst: AbstractInterpretationPolicyChecker
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:211,1
    - Dst: Eq
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:214,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:215,1
    - Dst: AbstractInterpretationPolicyChecker
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:216,1
    - Dst: Eq
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 219
    functionName: raksha::backends::policy_engine::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - Eq
    - AbstractInterpretationPolicyChecker
    - EXPECT_THAT
    - raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
    linkageType: ''
    returnType: void
    signature: "void TEST(AbstractInterpretationPolicyCheckerTest,\n     PolicyViolationCheckRespectsEgress)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:49,1
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:49,1
    - Dst: raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:50,1
    - Dst: module
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::AbstractInterpretationPolicyCheckerTest
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
    - module
    - GetParam
    linkageType: ''
    returnType: void
    signature: void AbstractInterpretationPolicyCheckerTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: '& module() const'
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    linkageType: ''
    returnType: ir::Module
    signature: ir::Module & module() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:56,1
    - Dst: ssa_names::get
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::ssa_names
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - ssa_names::get
    linkageType: ''
    returnType: ir::SsaNames
    signature: ir::SsaNames * ssa_names() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: '& inference_rules() const'
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: InferenceRules
    signature: InferenceRules & inference_rules() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: google::protobuf::TextFormat::Parser
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:62,1
    - Dst: std::string
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:63,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:64,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - ir::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 5
    functionsReached:
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - google::protobuf::TextFormat::Parser
    - std::string
    - CHECK
    linkageType: ''
    returnType: InferenceRules
    signature: InferenceRules BuildInferenceRules(const ir::Module& module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inference_rules
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:169,1
    - Dst: AbstractInterpretationPolicyChecker::ComputeIfcTags
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:170,1
    - Dst: module
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:170,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:171,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:172,1
    - Dst: EquivalentToValueForSsaNameKey
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:172,1
    - Dst: ssa_names
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:172,1
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: raksha::backends::policy_engine::TEST_P
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - inference_rules
    - EquivalentToValueForSsaNameKey
    - UnorderedPointwise
    - AbstractInterpretationPolicyChecker::ComputeIfcTags
    - EXPECT_THAT
    - ssa_names
    - module
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractInterpretationPolicyCheckerTest, ExpectedFixpointIsComputed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inference_rules
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:178,1
    - Dst: std::string
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:178,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:180,1
    - Dst: AbstractInterpretationPolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:180,1
    - Dst: module
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:180,1
    - Dst: Eq
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:181,1
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: raksha::backends::policy_engine::TEST_P
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - inference_rules
    - AbstractInterpretationPolicyChecker::IsModulePolicyCompliant
    - Eq
    - EXPECT_THAT
    - module
    - std::string
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractInterpretationPolicyCheckerTest, PolicyViolationCheckIsCorrect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:197,1
    - Dst: raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:200,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:203,1
    - Dst: AbstractInterpretationPolicyChecker
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:203,1
    - Dst: Eq
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:206,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:207,1
    - Dst: AbstractInterpretationPolicyChecker
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:208,1
    - Dst: Eq
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:210,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:211,1
    - Dst: AbstractInterpretationPolicyChecker
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:211,1
    - Dst: Eq
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:214,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:215,1
    - Dst: AbstractInterpretationPolicyChecker
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:216,1
    - Dst: Eq
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 219
    functionName: raksha::backends::policy_engine::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - Eq
    - AbstractInterpretationPolicyChecker
    - EXPECT_THAT
    - raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
    linkageType: ''
    returnType: void
    signature: "void TEST(AbstractInterpretationPolicyCheckerTest,\n     PolicyViolationCheckRespectsEgress)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:49,1
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:49,1
    - Dst: raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:50,1
    - Dst: module
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::AbstractInterpretationPolicyCheckerTest
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
    - module
    - GetParam
    linkageType: ''
    returnType: void
    signature: void AbstractInterpretationPolicyCheckerTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: '& module() const'
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    linkageType: ''
    returnType: ir::Module
    signature: ir::Module & module() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:56,1
    - Dst: ssa_names::get
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::ssa_names
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - ssa_names::get
    linkageType: ''
    returnType: ir::SsaNames
    signature: ir::SsaNames * ssa_names() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: '& inference_rules() const'
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: InferenceRules
    signature: InferenceRules & inference_rules() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: google::protobuf::TextFormat::Parser
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:62,1
    - Dst: std::string
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:63,1
    - Dst: CHECK
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:64,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - ir::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 7
    functionsReached:
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - google::protobuf::TextFormat::Parser
    - std::string
    - CHECK
    linkageType: ''
    returnType: InferenceRules
    signature: InferenceRules BuildInferenceRules(const ir::Module& module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inference_rules
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:169,1
    - Dst: AbstractInterpretationPolicyChecker::ComputeIfcTags
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:170,1
    - Dst: module
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:170,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:171,1
    - Dst: UnorderedPointwise
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:172,1
    - Dst: EquivalentToValueForSsaNameKey
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:172,1
    - Dst: ssa_names
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:172,1
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: raksha::backends::policy_engine::TEST_P
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - inference_rules
    - EquivalentToValueForSsaNameKey
    - UnorderedPointwise
    - AbstractInterpretationPolicyChecker::ComputeIfcTags
    - EXPECT_THAT
    - ssa_names
    - module
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractInterpretationPolicyCheckerTest, ExpectedFixpointIsComputed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inference_rules
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:178,1
    - Dst: std::string
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:178,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:180,1
    - Dst: AbstractInterpretationPolicyChecker::IsModulePolicyCompliant
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:180,1
    - Dst: module
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:180,1
    - Dst: Eq
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:181,1
    - Dst: GetParam
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: raksha::backends::policy_engine::TEST_P
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - inference_rules
    - AbstractInterpretationPolicyChecker::IsModulePolicyCompliant
    - Eq
    - EXPECT_THAT
    - module
    - std::string
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AbstractInterpretationPolicyCheckerTest, PolicyViolationCheckIsCorrect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:197,1
    - Dst: raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:200,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:203,1
    - Dst: AbstractInterpretationPolicyChecker
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:203,1
    - Dst: Eq
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:206,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:207,1
    - Dst: AbstractInterpretationPolicyChecker
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:208,1
    - Dst: Eq
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:210,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:211,1
    - Dst: AbstractInterpretationPolicyChecker
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:211,1
    - Dst: Eq
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:214,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:215,1
    - Dst: AbstractInterpretationPolicyChecker
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:216,1
    - Dst: Eq
      Src: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 219
    functionName: raksha::backends::policy_engine::TEST
    functionSourceFile: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - Eq
    - AbstractInterpretationPolicyChecker
    - EXPECT_THAT
    - raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
    linkageType: ''
    returnType: void
    signature: "void TEST(AbstractInterpretationPolicyCheckerTest,\n     PolicyViolationCheckRespectsEgress)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/selector_test.cc:59,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/selector_test.cc:60,1
    - Dst: ExampleSelectorAndInfo::selector::ToString
      Src: /src/raksha/src/ir/selector_test.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/selector_test.cc
    functionUses: 0
    functionsReached:
    - ExampleSelectorAndInfo::selector::ToString
    - ASSERT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(SelectorTest, ToStringAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/selector_test.cc:71,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/selector_test.cc:73,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/raksha/src/ir/selector_test.cc:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/selector_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - absl::VerifyTypeImplementsAbslHashCorrectly
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(SelectorHashTest, SelectorHashTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/selector_test.cc:85,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/selector_test.cc:86,1
    - Dst: std::get<1>
      Src: /src/raksha/src/ir/selector_test.cc:87,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/selector_test.cc:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/selector_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::get<1>
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(SelectorPairTest, SelectorEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/selector_test.cc:59,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/selector_test.cc:60,1
    - Dst: ExampleSelectorAndInfo::selector::ToString
      Src: /src/raksha/src/ir/selector_test.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/selector_test.cc
    functionUses: 0
    functionsReached:
    - ExampleSelectorAndInfo::selector::ToString
    - ASSERT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(SelectorTest, ToStringAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/selector_test.cc:71,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/selector_test.cc:73,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/raksha/src/ir/selector_test.cc:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/selector_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - absl::VerifyTypeImplementsAbslHashCorrectly
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(SelectorHashTest, SelectorHashTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/selector_test.cc:85,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/selector_test.cc:86,1
    - Dst: std::get<1>
      Src: /src/raksha/src/ir/selector_test.cc:87,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/selector_test.cc:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/selector_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::get<1>
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(SelectorPairTest, SelectorEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Operators
      Src: /src/raksha/src/ir/ir_to_proto.h:37,1
    - Dst: proto::IrTranslationUnit::add_operators
      Src: /src/raksha/src/ir/ir_to_proto.h:39,1
    - Dst: proto::Operator*::set_name
      Src: /src/raksha/src/ir/ir_to_proto.h:40,1
    - Dst: std::string
      Src: /src/raksha/src/ir/ir_to_proto.h:40,1
    - Dst: proto::IrTranslationUnit::mutable_frontend
      Src: /src/raksha/src/ir/ir_to_proto.h:43,1
    - Dst: proto::IrTranslationUnit::mutable_top_level_module
      Src: /src/raksha/src/ir/ir_to_proto.h:44,1
    - Dst: IRToProto::ModuleToProto
      Src: /src/raksha/src/ir/ir_to_proto.h:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' context'
    - ' root'
    argTypes:
    - IRContext
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 47
    functionName: raksha::ir::IRToProto::Convert
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.h
    functionUses: 0
    functionsReached:
    - proto::IrTranslationUnit::add_operators
    - proto::IrTranslationUnit::mutable_top_level_module
    - Operators
    - proto::IrTranslationUnit::mutable_frontend
    - std::string
    - IRToProto::ModuleToProto
    - proto::Operator*::set_name
    linkageType: ''
    returnType: proto::IrTranslationUnit
    signature: "proto::IrTranslationUnit Convert(const IRContext& context,\n                                          const
      Module& root)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: raksha::ir::IRToProto::IRToProto
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IRToProto(ID& id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: raksha::ir::IRToProto::IRToProto
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IRToProto(const IRToProto&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: '& operator=(const IRToProto&)'
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IRToProto
    signature: IRToProto & operator=(const IRToProto&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: raksha::ir::IRToProto::IRToProto
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IRToProto(IRToProto&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& operator=(IRToProto&&)'
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IRToProto
    signature: IRToProto & operator=(IRToProto&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: ~IRToProto()
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~IRToProto()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/ir/ir_to_proto.h:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' thing_to_get_value_for'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: raksha::ir::IRToProto::GetID
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.h
    functionUses: 0
    functionsReached:
    - insert
    linkageType: ''
    returnType: ID
    signature: ID GetID(const T& thing_to_get_value_for)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Operators
      Src: /src/raksha/src/ir/ir_to_proto.h:37,1
    - Dst: proto::IrTranslationUnit::add_operators
      Src: /src/raksha/src/ir/ir_to_proto.h:39,1
    - Dst: proto::Operator*::set_name
      Src: /src/raksha/src/ir/ir_to_proto.h:40,1
    - Dst: std::string
      Src: /src/raksha/src/ir/ir_to_proto.h:40,1
    - Dst: proto::IrTranslationUnit::mutable_frontend
      Src: /src/raksha/src/ir/ir_to_proto.h:43,1
    - Dst: proto::IrTranslationUnit::mutable_top_level_module
      Src: /src/raksha/src/ir/ir_to_proto.h:44,1
    - Dst: IRToProto::ModuleToProto
      Src: /src/raksha/src/ir/ir_to_proto.h:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' context'
    - ' root'
    argTypes:
    - IRContext
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 47
    functionName: raksha::ir::IRToProto::Convert
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.h
    functionUses: 0
    functionsReached:
    - proto::IrTranslationUnit::add_operators
    - proto::IrTranslationUnit::mutable_top_level_module
    - Operators
    - proto::IrTranslationUnit::mutable_frontend
    - std::string
    - IRToProto::ModuleToProto
    - proto::Operator*::set_name
    linkageType: ''
    returnType: proto::IrTranslationUnit
    signature: "proto::IrTranslationUnit Convert(const IRContext& context,\n                                          const
      Module& root)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' id'
    argTypes:
    - ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: raksha::ir::IRToProto::IRToProto
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IRToProto(ID& id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: raksha::ir::IRToProto::IRToProto
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IRToProto(const IRToProto&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: '& operator=(const IRToProto&)'
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IRToProto
    signature: IRToProto & operator=(const IRToProto&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: raksha::ir::IRToProto::IRToProto
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IRToProto(IRToProto&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& operator=(IRToProto&&)'
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IRToProto
    signature: IRToProto & operator=(IRToProto&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: ~IRToProto()
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~IRToProto()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/ir/ir_to_proto.h:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' thing_to_get_value_for'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: raksha::ir::IRToProto::GetID
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.h
    functionUses: 0
    functionsReached:
    - insert
    linkageType: ''
    returnType: ID
    signature: ID GetID(const T& thing_to_get_value_for)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: raksha::ir::IRContext::IRContext
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IRContext()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: raksha::ir::IRContext::IRContext
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IRContext(const IRContext &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: '&operator=(const IRContext &)'
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IRContext
    signature: IRContext &operator=(const IRContext &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::ir::IRContext::IRContext
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IRContext(IRContext &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: '&operator=(IRContext &&)'
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IRContext
    signature: IRContext &operator=(IRContext &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: ~IRContext()
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~IRContext()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterOperator
      Src: /src/raksha/src/ir/ir_context.h:43,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context.h:43,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_context.h:43,1
    - Dst: RegisterStorage
      Src: /src/raksha/src/ir/ir_context.h:46,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context.h:46,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_context.h:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - operators
    - storages
    argTypes:
    - std::vector<ir::Operator>
    - std::vector<ir::Storage>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: raksha::ir::IRContext::IRContext
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Storage>
    - RegisterOperator
    - std::make_unique<Operator>
    - RegisterStorage
    linkageType: ''
    returnType: void
    signature: "void IRContext(std::vector<ir::Operator> operators,\n            std::vector<ir::Storage>
      storages)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: '&type_factory()'
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: types::TypeFactory
    signature: types::TypeFactory &type_factory()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nodes
      Src: /src/raksha/src/ir/ir_context.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: "&Operators()\n      const"
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached:
    - nodes
    linkageType: ''
    returnType: absl::flat_hash_map<std::string, std::unique_ptr<Operator>>
    signature: "absl::flat_hash_map<std::string, std::unique_ptr<Operator>> &Operators()\n
      \     const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterNode
      Src: /src/raksha/src/ir/ir_context.h:60,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_context.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - std::unique_ptr<Operator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: '&RegisterOperator(std::unique_ptr<Operator> op)'
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached:
    - RegisterNode
    - std::move
    linkageType: ''
    returnType: Operator
    signature: Operator &RegisterOperator(std::unique_ptr<Operator> op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterOperator
      Src: /src/raksha/src/ir/ir_context.h:65,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context.h:65,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_context.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - Operator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: '&RegisterOperator(Operator op)'
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached:
    - std::move
    - RegisterOperator
    - std::make_unique<Operator>
    linkageType: ''
    returnType: Operator
    signature: Operator &RegisterOperator(Operator op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetNode
      Src: /src/raksha/src/ir/ir_context.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - operators_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: raksha::ir::IRContext::GetOperator
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 4
    functionsReached:
    - GetNode
    linkageType: ''
    returnType: Operator
    signature: Operator *GetOperator(absl::string_view operators_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsRegisteredNode
      Src: /src/raksha/src/ir/ir_context.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - operators_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: raksha::ir::IRContext::IsRegisteredOperator
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached:
    - IsRegisteredNode
    linkageType: ''
    returnType: bool
    signature: bool IsRegisteredOperator(absl::string_view operators_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterNode
      Src: /src/raksha/src/ir/ir_context.h:81,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_context.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - std::unique_ptr<Storage>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: '&RegisterStorage(std::unique_ptr<Storage> op)'
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached:
    - RegisterNode
    - std::move
    linkageType: ''
    returnType: Storage
    signature: Storage &RegisterStorage(std::unique_ptr<Storage> op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetNode
      Src: /src/raksha/src/ir/ir_context.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - operators_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: raksha::ir::IRContext::GetStorage
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached:
    - GetNode
    linkageType: ''
    returnType: Storage
    signature: Storage *GetStorage(absl::string_view operators_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsRegisteredNode
      Src: /src/raksha/src/ir/ir_context.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - operators_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: raksha::ir::IRContext::IsRegisteredStorage
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached:
    - IsRegisteredNode
    linkageType: ''
    returnType: bool
    signature: bool IsRegisteredStorage(absl::string_view operators_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/ir/ir_context.h:111,1
    - Dst: std::string
      Src: /src/raksha/src/ir/ir_context.h:111,1
    - Dst: std::unique_ptr<Node>::name
      Src: /src/raksha/src/ir/ir_context.h:111,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_context.h:111,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/ir_context.h:112,1
    - Dst: auto::first::second::get
      Src: /src/raksha/src/ir/ir_context.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - std::unique_ptr<Node>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: '&RegisterNode(std::unique_ptr<Node> node)'
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Node>::name
    - auto::first::second::get
    - std::move
    - CHECK
    - std::string
    - insert
    linkageType: ''
    returnType: Node
    signature: Node &RegisterNode(std::unique_ptr<Node> node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/ir/ir_context.h:120,1
    - Dst: end
      Src: /src/raksha/src/ir/ir_context.h:121,1
    - Dst: auto::second::get
      Src: /src/raksha/src/ir/ir_context.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: raksha::ir::IRContext::NamedIRNodeRegistry::GetNode
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached:
    - auto::second::get
    - find
    - end
    linkageType: ''
    returnType: Node
    signature: Node *GetNode(absl::string_view node_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/ir/ir_context.h:126,1
    - Dst: end
      Src: /src/raksha/src/ir/ir_context.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: raksha::ir::IRContext::NamedIRNodeRegistry::IsRegisteredNode
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached:
    - find
    - end
    linkageType: ''
    returnType: bool
    signature: bool IsRegisteredNode(absl::string_view node_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: "&nodes()\n        const"
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::flat_hash_map<std::string, std::unique_ptr<Node>>
    signature: "absl::flat_hash_map<std::string, std::unique_ptr<Node>> &nodes()\n
      \       const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: raksha::ir::IRContext::IRContext
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IRContext()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: raksha::ir::IRContext::IRContext
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IRContext(const IRContext &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: '&operator=(const IRContext &)'
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IRContext
    signature: IRContext &operator=(const IRContext &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::ir::IRContext::IRContext
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IRContext(IRContext &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: '&operator=(IRContext &&)'
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IRContext
    signature: IRContext &operator=(IRContext &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: ~IRContext()
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~IRContext()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterOperator
      Src: /src/raksha/src/ir/ir_context.h:43,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context.h:43,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_context.h:43,1
    - Dst: RegisterStorage
      Src: /src/raksha/src/ir/ir_context.h:46,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context.h:46,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_context.h:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - operators
    - storages
    argTypes:
    - std::vector<ir::Operator>
    - std::vector<ir::Storage>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: raksha::ir::IRContext::IRContext
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Storage>
    - RegisterOperator
    - std::make_unique<Operator>
    - RegisterStorage
    linkageType: ''
    returnType: void
    signature: "void IRContext(std::vector<ir::Operator> operators,\n            std::vector<ir::Storage>
      storages)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: '&type_factory()'
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: types::TypeFactory
    signature: types::TypeFactory &type_factory()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nodes
      Src: /src/raksha/src/ir/ir_context.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: "&Operators()\n      const"
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached:
    - nodes
    linkageType: ''
    returnType: absl::flat_hash_map<std::string, std::unique_ptr<Operator>>
    signature: "absl::flat_hash_map<std::string, std::unique_ptr<Operator>> &Operators()\n
      \     const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterNode
      Src: /src/raksha/src/ir/ir_context.h:60,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_context.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - std::unique_ptr<Operator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: '&RegisterOperator(std::unique_ptr<Operator> op)'
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached:
    - RegisterNode
    - std::move
    linkageType: ''
    returnType: Operator
    signature: Operator &RegisterOperator(std::unique_ptr<Operator> op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterOperator
      Src: /src/raksha/src/ir/ir_context.h:65,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context.h:65,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_context.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - Operator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: '&RegisterOperator(Operator op)'
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached:
    - std::move
    - RegisterOperator
    - std::make_unique<Operator>
    linkageType: ''
    returnType: Operator
    signature: Operator &RegisterOperator(Operator op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetNode
      Src: /src/raksha/src/ir/ir_context.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - operators_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: raksha::ir::IRContext::GetOperator
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 4
    functionsReached:
    - GetNode
    linkageType: ''
    returnType: Operator
    signature: Operator *GetOperator(absl::string_view operators_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsRegisteredNode
      Src: /src/raksha/src/ir/ir_context.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - operators_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: raksha::ir::IRContext::IsRegisteredOperator
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached:
    - IsRegisteredNode
    linkageType: ''
    returnType: bool
    signature: bool IsRegisteredOperator(absl::string_view operators_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterNode
      Src: /src/raksha/src/ir/ir_context.h:81,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_context.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - std::unique_ptr<Storage>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: '&RegisterStorage(std::unique_ptr<Storage> op)'
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached:
    - RegisterNode
    - std::move
    linkageType: ''
    returnType: Storage
    signature: Storage &RegisterStorage(std::unique_ptr<Storage> op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetNode
      Src: /src/raksha/src/ir/ir_context.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - operators_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: raksha::ir::IRContext::GetStorage
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached:
    - GetNode
    linkageType: ''
    returnType: Storage
    signature: Storage *GetStorage(absl::string_view operators_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsRegisteredNode
      Src: /src/raksha/src/ir/ir_context.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - operators_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: raksha::ir::IRContext::IsRegisteredStorage
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached:
    - IsRegisteredNode
    linkageType: ''
    returnType: bool
    signature: bool IsRegisteredStorage(absl::string_view operators_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/ir/ir_context.h:111,1
    - Dst: std::string
      Src: /src/raksha/src/ir/ir_context.h:111,1
    - Dst: std::unique_ptr<Node>::name
      Src: /src/raksha/src/ir/ir_context.h:111,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_context.h:111,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/ir_context.h:112,1
    - Dst: auto::first::second::get
      Src: /src/raksha/src/ir/ir_context.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - std::unique_ptr<Node>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: '&RegisterNode(std::unique_ptr<Node> node)'
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Node>::name
    - auto::first::second::get
    - std::move
    - CHECK
    - std::string
    - insert
    linkageType: ''
    returnType: Node
    signature: Node &RegisterNode(std::unique_ptr<Node> node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/ir/ir_context.h:120,1
    - Dst: end
      Src: /src/raksha/src/ir/ir_context.h:121,1
    - Dst: auto::second::get
      Src: /src/raksha/src/ir/ir_context.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: raksha::ir::IRContext::NamedIRNodeRegistry::GetNode
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached:
    - auto::second::get
    - find
    - end
    linkageType: ''
    returnType: Node
    signature: Node *GetNode(absl::string_view node_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/ir/ir_context.h:126,1
    - Dst: end
      Src: /src/raksha/src/ir/ir_context.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: raksha::ir::IRContext::NamedIRNodeRegistry::IsRegisteredNode
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached:
    - find
    - end
    linkageType: ''
    returnType: bool
    signature: bool IsRegisteredNode(absl::string_view node_name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: "&nodes()\n        const"
    functionSourceFile: /src/raksha/src/ir/ir_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::flat_hash_map<std::string, std::unique_ptr<Node>>
    signature: "absl::flat_hash_map<std::string, std::unique_ptr<Node>> &nodes()\n
      \       const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:61,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:62,1
    - Dst: raksha::ir::AccessPathSelectorsSet::CreateAbslSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:63,1
    - Dst: AccessPathSelectorsSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:63,1
    - Dst: absl::flat_hash_set<AccessPathSelectors>
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:64,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:64,1
    - Dst: std::vector::end
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_set_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - AccessPathSelectorsSet
    - absl::flat_hash_set<AccessPathSelectors>
    - std::vector::end
    - ASSERT_EQ
    - raksha::ir::AccessPathSelectorsSet::CreateAbslSet
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(CreateAbslSetTest, CreateAbslSetTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:78,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:79,1
    - Dst: AccessPathSelectorsSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:81,1
    - Dst: std::get<1>
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:81,1
    - Dst: raksha::ir::AccessPathSelectorsSet::CreateAbslSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:83,1
    - Dst: raksha::ir::AccessPathSelectorsSet::AddParentToAll
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:86,1
    - Dst: raksha::ir::AccessPathSelectorsSet::CreateAbslSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:88,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:91,1
    - Dst: absl::flat_hash_set::size
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:91,1
    - Dst: absl::flat_hash_set::size
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:91,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:97,1
    - Dst: ToString
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:97,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:102,1
    - Dst: Selector::ToString
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:102,1
    - Dst: ToString
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:102,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:103,1
    - Dst: absl::flat_hash_set::contains
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 105
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_set_test.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_set::insert
    - AccessPathSelectorsSet
    - ToString
    - Selector::ToString
    - ASSERT_TRUE
    - raksha::ir::AccessPathSelectorsSet::AddParentToAll
    - std::get<0>
    - ASSERT_EQ
    - absl::flat_hash_set::size
    - absl::StrCat
    - raksha::ir::AccessPathSelectorsSet::CreateAbslSet
    - std::get<1>
    - absl::flat_hash_set::contains
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AddParentTest, AddParentTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::AccessPathSelectorsSet::CreateAbslSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:119,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:119,1
    - Dst: absl::btree_set::insert
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:122,1
    - Dst: ToString
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - orig_set
    argTypes:
    - AccessPathSelectorsSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 126
    functionName: raksha::ir::MakeOrderedStrSet
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_set_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - raksha::ir::AccessPathSelectorsSet::CreateAbslSet
    - std::move
    - absl::btree_set::insert
    linkageType: ''
    returnType: absl::btree_set<std::string>
    signature: "absl::btree_set<std::string> MakeOrderedStrSet(\n    AccessPathSelectorsSet
      orig_set)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:134,1
    - Dst: AccessPathSelectorsSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:135,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:135,1
    - Dst: AccessPathSelectorsSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:136,1
    - Dst: std::get<1>
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:136,1
    - Dst: raksha::ir::MakeOrderedStrSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:138,1
    - Dst: raksha::ir::MakeOrderedStrSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:139,1
    - Dst: raksha::ir::MakeOrderedStrSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:140,1
    - Dst: raksha::ir::AccessPathSelectorsSet::Union
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:141,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:141,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:141,1
    - Dst: absl::btree_set::merge
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:143,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 145
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_set_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::AccessPathSelectorsSet::Union
    - AccessPathSelectorsSet
    - raksha::ir::MakeOrderedStrSet
    - absl::btree_set::merge
    - std::move
    - std::get<0>
    - ASSERT_EQ
    - std::get<1>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(UnionTest, UnionTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:162,1
    - Dst: AccessPathSelectorsSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:164,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:164,1
    - Dst: AccessPathSelectorsSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:165,1
    - Dst: std::get<1>
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:165,1
    - Dst: raksha::ir::MakeOrderedStrSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:167,1
    - Dst: raksha::ir::MakeOrderedStrSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:168,1
    - Dst: raksha::ir::MakeOrderedStrSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:170,1
    - Dst: raksha::ir::AccessPathSelectorsSet::Intersect
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:170,1
    - Dst: std::set_intersection
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:173,1
    - Dst: absl::btree_set::begin
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:173,1
    - Dst: absl::btree_set::end
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:173,1
    - Dst: absl::btree_set::begin
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:173,1
    - Dst: absl::btree_set::end
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:174,1
    - Dst: std::inserter
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:175,1
    - Dst: absl::btree_set::begin
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:176,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 179
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_set_test.cc
    functionUses: 0
    functionsReached:
    - std::inserter
    - absl::btree_set::end
    - AccessPathSelectorsSet
    - raksha::ir::MakeOrderedStrSet
    - std::get<0>
    - ASSERT_EQ
    - std::set_intersection
    - std::get<1>
    - raksha::ir::AccessPathSelectorsSet::Intersect
    - absl::btree_set::begin
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntersectionTest, IntersectionTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:61,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:62,1
    - Dst: raksha::ir::AccessPathSelectorsSet::CreateAbslSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:63,1
    - Dst: AccessPathSelectorsSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:63,1
    - Dst: absl::flat_hash_set<AccessPathSelectors>
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:64,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:64,1
    - Dst: std::vector::end
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_set_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - AccessPathSelectorsSet
    - absl::flat_hash_set<AccessPathSelectors>
    - std::vector::end
    - ASSERT_EQ
    - raksha::ir::AccessPathSelectorsSet::CreateAbslSet
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(CreateAbslSetTest, CreateAbslSetTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:78,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:79,1
    - Dst: AccessPathSelectorsSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:81,1
    - Dst: std::get<1>
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:81,1
    - Dst: raksha::ir::AccessPathSelectorsSet::CreateAbslSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:83,1
    - Dst: raksha::ir::AccessPathSelectorsSet::AddParentToAll
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:86,1
    - Dst: raksha::ir::AccessPathSelectorsSet::CreateAbslSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:88,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:91,1
    - Dst: absl::flat_hash_set::size
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:91,1
    - Dst: absl::flat_hash_set::size
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:91,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:97,1
    - Dst: ToString
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:97,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:102,1
    - Dst: Selector::ToString
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:102,1
    - Dst: ToString
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:102,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:103,1
    - Dst: absl::flat_hash_set::contains
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 105
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_set_test.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_set::insert
    - AccessPathSelectorsSet
    - ToString
    - Selector::ToString
    - ASSERT_TRUE
    - raksha::ir::AccessPathSelectorsSet::AddParentToAll
    - std::get<0>
    - ASSERT_EQ
    - absl::flat_hash_set::size
    - absl::StrCat
    - raksha::ir::AccessPathSelectorsSet::CreateAbslSet
    - std::get<1>
    - absl::flat_hash_set::contains
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AddParentTest, AddParentTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::AccessPathSelectorsSet::CreateAbslSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:119,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:119,1
    - Dst: absl::btree_set::insert
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:122,1
    - Dst: ToString
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - orig_set
    argTypes:
    - AccessPathSelectorsSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 126
    functionName: raksha::ir::MakeOrderedStrSet
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_set_test.cc
    functionUses: 2
    functionsReached:
    - ToString
    - raksha::ir::AccessPathSelectorsSet::CreateAbslSet
    - std::move
    - absl::btree_set::insert
    linkageType: ''
    returnType: absl::btree_set<std::string>
    signature: "absl::btree_set<std::string> MakeOrderedStrSet(\n    AccessPathSelectorsSet
      orig_set)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:134,1
    - Dst: AccessPathSelectorsSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:135,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:135,1
    - Dst: AccessPathSelectorsSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:136,1
    - Dst: std::get<1>
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:136,1
    - Dst: raksha::ir::MakeOrderedStrSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:138,1
    - Dst: raksha::ir::MakeOrderedStrSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:139,1
    - Dst: raksha::ir::MakeOrderedStrSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:140,1
    - Dst: raksha::ir::AccessPathSelectorsSet::Union
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:141,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:141,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:141,1
    - Dst: absl::btree_set::merge
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:143,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 145
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_set_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::AccessPathSelectorsSet::Union
    - AccessPathSelectorsSet
    - raksha::ir::MakeOrderedStrSet
    - absl::btree_set::merge
    - std::move
    - std::get<0>
    - ASSERT_EQ
    - std::get<1>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(UnionTest, UnionTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:162,1
    - Dst: AccessPathSelectorsSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:164,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:164,1
    - Dst: AccessPathSelectorsSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:165,1
    - Dst: std::get<1>
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:165,1
    - Dst: raksha::ir::MakeOrderedStrSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:167,1
    - Dst: raksha::ir::MakeOrderedStrSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:168,1
    - Dst: raksha::ir::MakeOrderedStrSet
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:170,1
    - Dst: raksha::ir::AccessPathSelectorsSet::Intersect
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:170,1
    - Dst: std::set_intersection
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:173,1
    - Dst: absl::btree_set::begin
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:173,1
    - Dst: absl::btree_set::end
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:173,1
    - Dst: absl::btree_set::begin
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:173,1
    - Dst: absl::btree_set::end
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:174,1
    - Dst: std::inserter
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:175,1
    - Dst: absl::btree_set::begin
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:176,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/access_path_selectors_set_test.cc:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 179
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_set_test.cc
    functionUses: 0
    functionsReached:
    - std::inserter
    - absl::btree_set::end
    - AccessPathSelectorsSet
    - raksha::ir::MakeOrderedStrSet
    - std::get<0>
    - ASSERT_EQ
    - std::set_intersection
    - std::get<1>
    - raksha::ir::AccessPathSelectorsSet::Intersect
    - absl::btree_set::begin
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntersectionTest, IntersectionTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: raksha::ir::Operator::Operator
    functionSourceFile: /src/raksha/src/ir/operator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Operator(absl::string_view name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - name
    - number_of_return_values
    argTypes:
    - absl::string_view
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: raksha::ir::Operator::Operator
    functionSourceFile: /src/raksha/src/ir/operator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Operator(absl::string_view name, uint64_t number_of_return_values)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: raksha::ir::Operator::name
    functionSourceFile: /src/raksha/src/ir/operator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::ir::Operator::number_of_return_values
    functionSourceFile: /src/raksha/src/ir/operator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t number_of_return_values() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: raksha::ir::Operator::Operator
    functionSourceFile: /src/raksha/src/ir/operator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Operator(absl::string_view name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - name
    - number_of_return_values
    argTypes:
    - absl::string_view
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: raksha::ir::Operator::Operator
    functionSourceFile: /src/raksha/src/ir/operator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Operator(absl::string_view name, uint64_t number_of_return_values)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: raksha::ir::Operator::name
    functionSourceFile: /src/raksha/src/ir/operator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::ir::Operator::number_of_return_values
    functionSourceFile: /src/raksha/src/ir/operator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t number_of_return_values() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/module_test.cc:41,1
    - Dst: Module::blocks
      Src: /src/raksha/src/ir/module_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Module::blocks
    linkageType: ''
    returnType: void
    signature: void TEST(ModuleTest, DefaultConstructorCreatesEmptyBlocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/module_test.cc:46,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/module_test.cc:47,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/module_test.cc:48,1
    - Dst: std::move
      Src: /src/raksha/src/ir/module_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/module_test.cc:49,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/module_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/module_test.cc:50,1
    - Dst: parent_module
      Src: /src/raksha/src/ir/module_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - parent_module
    - Module::AddBlock
    - auto::get
    - std::addressof
    - std::move
    - std::make_unique<Block>
    linkageType: ''
    returnType: void
    signature: void TEST(ModuleTest, AddBlockReturnsPassedInBlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/raksha/src/ir/module_test.cc:56,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/module_test.cc:56,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/module_test.cc:56,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/module_test.cc:58,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/module_test.cc:58,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/module_test.cc:58,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/ir/module_test.cc:59,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/module_test.cc:60,1
    - Dst: Module::blocks
      Src: /src/raksha/src/ir/module_test.cc:60,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/module_test.cc:60,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/module_test.cc:61,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/module_test.cc:61,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/module_test.cc:62,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/module_test.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - Module::blocks
    - Module::AddBlock
    - testing::UnorderedElementsAre
    - std::addressof
    - testing::Pointer
    - EXPECT_THAT
    - testing::Eq
    - std::make_unique<Block>
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(ModuleTest, AddBlockUpdatesBlockList)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/module_test.cc:76,1
    - Dst: CreateStorage
      Src: /src/raksha/src/ir/module_test.cc:77,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/module_test.cc:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - storage_names
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: raksha::ir::ModuleStorageTestFixture::ModuleStorageTestFixture
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - CreateStorage
    - push_back
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void ModuleStorageTestFixture(std::vector<std::string> storage_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: '& module()'
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Module
    signature: Module & module()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: '& type_factory()'
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeFactory
    signature: TypeFactory & type_factory()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: '& created_storages()'
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<const Storage*>
    signature: std::vector<const Storage*> & created_storages()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: raksha::ir::ModuleStorageTestFixture::name_not_in_storages
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view name_not_in_storages()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/raksha/src/ir/module_test.cc:99,1
    - Dst: size
      Src: /src/raksha/src/ir/module_test.cc:99,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/module_test.cc:101,1
    - Dst: second::name
      Src: /src/raksha/src/ir/module_test.cc:101,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/module_test.cc:102,1
    - Dst: second::get
      Src: /src/raksha/src/ir/module_test.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' map'
    argTypes:
    - Module::NamedStorageMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: raksha::ir::MakeNamedStorageMapIntoStorageVector
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - second::get
    - std::vector::reserve
    - second::name
    - CHECK
    - size
    linkageType: ''
    returnType: std::vector<const Storage*>
    signature: "std::vector<const Storage*> MakeNamedStorageMapIntoStorageVector(\n
      \   const Module::NamedStorageMap& map)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/module_test.cc:109,1
    - Dst: raksha::ir::MakeNamedStorageMapIntoStorageVector
      Src: /src/raksha/src/ir/module_test.cc:109,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:110,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/ir/module_test.cc:111,1
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:111,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:112,1
    - Dst: ModuleStorageTestFixture::name_not_in_storages
      Src: /src/raksha/src/ir/module_test.cc:113,1
    - Dst: ModuleStorageTestFixture::type_factory
      Src: /src/raksha/src/ir/module_test.cc:114,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/module_test.cc:116,1
    - Dst: std::vector::insert
      Src: /src/raksha/src/ir/module_test.cc:117,1
    - Dst: std::vector::end
      Src: /src/raksha/src/ir/module_test.cc:118,1
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:119,1
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:119,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/module_test.cc:120,1
    - Dst: raksha::ir::MakeNamedStorageMapIntoStorageVector
      Src: /src/raksha/src/ir/module_test.cc:120,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:121,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/ir/module_test.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - storage_names
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 123
    functionName: raksha::ir::TestCreateStorages
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::insert
    - std::vector::push_back
    - UnorderedElementsAreArray
    - EXPECT_THAT
    - raksha::ir::MakeNamedStorageMapIntoStorageVector
    - ModuleStorageTestFixture::name_not_in_storages
    - ModuleStorageTestFixture::module
    - ModuleStorageTestFixture::type_factory
    - ModuleStorageTestFixture::created_storages
    - std::vector::end
    linkageType: ''
    returnType: void
    signature: void TestCreateStorages(std::vector<std::string> storage_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/module_test.cc:131,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:131,1
    - Dst: name
      Src: /src/raksha/src/ir/module_test.cc:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - storage_names
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: raksha::ir::GetAddedStorageBehavesCorrectly
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - ModuleStorageTestFixture::created_storages
    - EXPECT_EQ
    - ModuleStorageTestFixture::module
    - name
    linkageType: ''
    returnType: void
    signature: void GetAddedStorageBehavesCorrectly(std::vector<std::string> storage_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/module_test.cc:140,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:140,1
    - Dst: ModuleStorageTestFixture::name_not_in_storages
      Src: /src/raksha/src/ir/module_test.cc:140,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/module_test.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - storage_names
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: raksha::ir::GetNotPresentStorageFails
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrCat
    - EXPECT_DEATH
    - ModuleStorageTestFixture::name_not_in_storages
    - ModuleStorageTestFixture::module
    linkageType: ''
    returnType: void
    signature: void GetNotPresentStorageFails(std::vector<std::string> storage_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:151,1
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:152,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/module_test.cc:154,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:155,1
    - Dst: ModuleStorageTestFixture::type_factory
      Src: /src/raksha/src/ir/module_test.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - storage_names
    - idx
    argTypes:
    - std::vector<std::string>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 158
    functionName: raksha::ir::CreateStorageSameNameDies
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - ModuleStorageTestFixture::created_storages
    - EXPECT_DEATH
    - ModuleStorageTestFixture::type_factory
    - ModuleStorageTestFixture::module
    linkageType: ''
    returnType: void
    signature: "void CreateStorageSameNameDies(std::vector<std::string> storage_names,\n
      \                              uint64_t idx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:167,1
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:168,1
    - Dst: Value
      Src: /src/raksha/src/ir/module_test.cc:170,1
    - Dst: Any
      Src: /src/raksha/src/ir/module_test.cc:170,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:171,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:172,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/module_test.cc:174,1
    - Dst: input_values
      Src: /src/raksha/src/ir/module_test.cc:174,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/ir/module_test.cc:175,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/module_test.cc:177,1
    - Dst: input_values
      Src: /src/raksha/src/ir/module_test.cc:177,1
    - Dst: IsEmpty
      Src: /src/raksha/src/ir/module_test.cc:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - storage_names
    - idx
    argTypes:
    - std::vector<std::string>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 180
    functionName: raksha::ir::AddValueToStorage
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - IsEmpty
    - Value
    - Any
    - UnorderedElementsAreArray
    - EXPECT_THAT
    - ModuleStorageTestFixture::module
    - ModuleStorageTestFixture::created_storages
    - input_values
    linkageType: ''
    returnType: void
    signature: void AddValueToStorage(std::vector<std::string> storage_names, uint64_t
      idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/module_test.cc:41,1
    - Dst: Module::blocks
      Src: /src/raksha/src/ir/module_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Module::blocks
    linkageType: ''
    returnType: void
    signature: void TEST(ModuleTest, DefaultConstructorCreatesEmptyBlocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/module_test.cc:46,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/module_test.cc:47,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/module_test.cc:48,1
    - Dst: std::move
      Src: /src/raksha/src/ir/module_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/module_test.cc:49,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/module_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/module_test.cc:50,1
    - Dst: parent_module
      Src: /src/raksha/src/ir/module_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - parent_module
    - Module::AddBlock
    - auto::get
    - std::addressof
    - std::move
    - std::make_unique<Block>
    linkageType: ''
    returnType: void
    signature: void TEST(ModuleTest, AddBlockReturnsPassedInBlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/raksha/src/ir/module_test.cc:56,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/module_test.cc:56,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/module_test.cc:56,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/module_test.cc:58,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/module_test.cc:58,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/module_test.cc:58,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/ir/module_test.cc:59,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/module_test.cc:60,1
    - Dst: Module::blocks
      Src: /src/raksha/src/ir/module_test.cc:60,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/module_test.cc:60,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/module_test.cc:61,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/module_test.cc:61,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/module_test.cc:62,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/module_test.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - Module::blocks
    - Module::AddBlock
    - testing::UnorderedElementsAre
    - std::addressof
    - testing::Pointer
    - EXPECT_THAT
    - testing::Eq
    - std::make_unique<Block>
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(ModuleTest, AddBlockUpdatesBlockList)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/module_test.cc:76,1
    - Dst: CreateStorage
      Src: /src/raksha/src/ir/module_test.cc:77,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/module_test.cc:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - storage_names
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: raksha::ir::ModuleStorageTestFixture::ModuleStorageTestFixture
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - CreateStorage
    - push_back
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void ModuleStorageTestFixture(std::vector<std::string> storage_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: '& module()'
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Module
    signature: Module & module()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: '& type_factory()'
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeFactory
    signature: TypeFactory & type_factory()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: '& created_storages()'
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<const Storage*>
    signature: std::vector<const Storage*> & created_storages()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: raksha::ir::ModuleStorageTestFixture::name_not_in_storages
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view name_not_in_storages()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/raksha/src/ir/module_test.cc:99,1
    - Dst: size
      Src: /src/raksha/src/ir/module_test.cc:99,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/module_test.cc:101,1
    - Dst: second::name
      Src: /src/raksha/src/ir/module_test.cc:101,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/module_test.cc:102,1
    - Dst: second::get
      Src: /src/raksha/src/ir/module_test.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' map'
    argTypes:
    - Module::NamedStorageMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: raksha::ir::MakeNamedStorageMapIntoStorageVector
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 1
    functionsReached:
    - std::vector::push_back
    - second::get
    - std::vector::reserve
    - second::name
    - CHECK
    - size
    linkageType: ''
    returnType: std::vector<const Storage*>
    signature: "std::vector<const Storage*> MakeNamedStorageMapIntoStorageVector(\n
      \   const Module::NamedStorageMap& map)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/module_test.cc:109,1
    - Dst: raksha::ir::MakeNamedStorageMapIntoStorageVector
      Src: /src/raksha/src/ir/module_test.cc:109,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:110,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/ir/module_test.cc:111,1
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:111,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:112,1
    - Dst: ModuleStorageTestFixture::name_not_in_storages
      Src: /src/raksha/src/ir/module_test.cc:113,1
    - Dst: ModuleStorageTestFixture::type_factory
      Src: /src/raksha/src/ir/module_test.cc:114,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/module_test.cc:116,1
    - Dst: std::vector::insert
      Src: /src/raksha/src/ir/module_test.cc:117,1
    - Dst: std::vector::end
      Src: /src/raksha/src/ir/module_test.cc:118,1
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:119,1
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:119,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/module_test.cc:120,1
    - Dst: raksha::ir::MakeNamedStorageMapIntoStorageVector
      Src: /src/raksha/src/ir/module_test.cc:120,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:121,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/ir/module_test.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - storage_names
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 123
    functionName: raksha::ir::TestCreateStorages
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::insert
    - std::vector::push_back
    - UnorderedElementsAreArray
    - EXPECT_THAT
    - raksha::ir::MakeNamedStorageMapIntoStorageVector
    - ModuleStorageTestFixture::name_not_in_storages
    - ModuleStorageTestFixture::module
    - ModuleStorageTestFixture::type_factory
    - ModuleStorageTestFixture::created_storages
    - std::vector::end
    linkageType: ''
    returnType: void
    signature: void TestCreateStorages(std::vector<std::string> storage_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/module_test.cc:131,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:131,1
    - Dst: name
      Src: /src/raksha/src/ir/module_test.cc:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - storage_names
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: raksha::ir::GetAddedStorageBehavesCorrectly
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - ModuleStorageTestFixture::created_storages
    - EXPECT_EQ
    - ModuleStorageTestFixture::module
    - name
    linkageType: ''
    returnType: void
    signature: void GetAddedStorageBehavesCorrectly(std::vector<std::string> storage_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/module_test.cc:140,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:140,1
    - Dst: ModuleStorageTestFixture::name_not_in_storages
      Src: /src/raksha/src/ir/module_test.cc:140,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/module_test.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - storage_names
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: raksha::ir::GetNotPresentStorageFails
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrCat
    - EXPECT_DEATH
    - ModuleStorageTestFixture::name_not_in_storages
    - ModuleStorageTestFixture::module
    linkageType: ''
    returnType: void
    signature: void GetNotPresentStorageFails(std::vector<std::string> storage_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:151,1
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:152,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/module_test.cc:154,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:155,1
    - Dst: ModuleStorageTestFixture::type_factory
      Src: /src/raksha/src/ir/module_test.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - storage_names
    - idx
    argTypes:
    - std::vector<std::string>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 158
    functionName: raksha::ir::CreateStorageSameNameDies
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - ModuleStorageTestFixture::created_storages
    - EXPECT_DEATH
    - ModuleStorageTestFixture::type_factory
    - ModuleStorageTestFixture::module
    linkageType: ''
    returnType: void
    signature: "void CreateStorageSameNameDies(std::vector<std::string> storage_names,\n
      \                              uint64_t idx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:167,1
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:168,1
    - Dst: Value
      Src: /src/raksha/src/ir/module_test.cc:170,1
    - Dst: Any
      Src: /src/raksha/src/ir/module_test.cc:170,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:171,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:172,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/module_test.cc:174,1
    - Dst: input_values
      Src: /src/raksha/src/ir/module_test.cc:174,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/ir/module_test.cc:175,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/module_test.cc:177,1
    - Dst: input_values
      Src: /src/raksha/src/ir/module_test.cc:177,1
    - Dst: IsEmpty
      Src: /src/raksha/src/ir/module_test.cc:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - storage_names
    - idx
    argTypes:
    - std::vector<std::string>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 180
    functionName: raksha::ir::AddValueToStorage
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - IsEmpty
    - Value
    - Any
    - UnorderedElementsAreArray
    - EXPECT_THAT
    - ModuleStorageTestFixture::module
    - ModuleStorageTestFixture::created_storages
    - input_values
    linkageType: ''
    returnType: void
    signature: void AddValueToStorage(std::vector<std::string> storage_names, uint64_t
      idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/module_test.cc:41,1
    - Dst: Module::blocks
      Src: /src/raksha/src/ir/module_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Module::blocks
    linkageType: ''
    returnType: void
    signature: void TEST(ModuleTest, DefaultConstructorCreatesEmptyBlocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/module_test.cc:46,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/module_test.cc:47,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/module_test.cc:48,1
    - Dst: std::move
      Src: /src/raksha/src/ir/module_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/module_test.cc:49,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/module_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/module_test.cc:50,1
    - Dst: parent_module
      Src: /src/raksha/src/ir/module_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - parent_module
    - Module::AddBlock
    - auto::get
    - std::addressof
    - std::move
    - std::make_unique<Block>
    linkageType: ''
    returnType: void
    signature: void TEST(ModuleTest, AddBlockReturnsPassedInBlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/raksha/src/ir/module_test.cc:56,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/module_test.cc:56,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/module_test.cc:56,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/module_test.cc:58,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/module_test.cc:58,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/module_test.cc:58,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/ir/module_test.cc:59,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/module_test.cc:60,1
    - Dst: Module::blocks
      Src: /src/raksha/src/ir/module_test.cc:60,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/module_test.cc:60,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/module_test.cc:61,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/module_test.cc:61,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/module_test.cc:62,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/module_test.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - Module::blocks
    - Module::AddBlock
    - testing::UnorderedElementsAre
    - std::addressof
    - testing::Pointer
    - EXPECT_THAT
    - testing::Eq
    - std::make_unique<Block>
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(ModuleTest, AddBlockUpdatesBlockList)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/module_test.cc:76,1
    - Dst: CreateStorage
      Src: /src/raksha/src/ir/module_test.cc:77,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/module_test.cc:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - storage_names
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: raksha::ir::ModuleStorageTestFixture::ModuleStorageTestFixture
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - CreateStorage
    - push_back
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void ModuleStorageTestFixture(std::vector<std::string> storage_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: '& module()'
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Module
    signature: Module & module()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: '& type_factory()'
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeFactory
    signature: TypeFactory & type_factory()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: '& created_storages()'
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<const Storage*>
    signature: std::vector<const Storage*> & created_storages()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: raksha::ir::ModuleStorageTestFixture::name_not_in_storages
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view name_not_in_storages()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/raksha/src/ir/module_test.cc:99,1
    - Dst: size
      Src: /src/raksha/src/ir/module_test.cc:99,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/module_test.cc:101,1
    - Dst: second::name
      Src: /src/raksha/src/ir/module_test.cc:101,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/module_test.cc:102,1
    - Dst: second::get
      Src: /src/raksha/src/ir/module_test.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' map'
    argTypes:
    - Module::NamedStorageMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: raksha::ir::MakeNamedStorageMapIntoStorageVector
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 2
    functionsReached:
    - std::vector::push_back
    - second::get
    - std::vector::reserve
    - second::name
    - CHECK
    - size
    linkageType: ''
    returnType: std::vector<const Storage*>
    signature: "std::vector<const Storage*> MakeNamedStorageMapIntoStorageVector(\n
      \   const Module::NamedStorageMap& map)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/module_test.cc:109,1
    - Dst: raksha::ir::MakeNamedStorageMapIntoStorageVector
      Src: /src/raksha/src/ir/module_test.cc:109,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:110,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/ir/module_test.cc:111,1
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:111,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:112,1
    - Dst: ModuleStorageTestFixture::name_not_in_storages
      Src: /src/raksha/src/ir/module_test.cc:113,1
    - Dst: ModuleStorageTestFixture::type_factory
      Src: /src/raksha/src/ir/module_test.cc:114,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/module_test.cc:116,1
    - Dst: std::vector::insert
      Src: /src/raksha/src/ir/module_test.cc:117,1
    - Dst: std::vector::end
      Src: /src/raksha/src/ir/module_test.cc:118,1
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:119,1
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:119,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/module_test.cc:120,1
    - Dst: raksha::ir::MakeNamedStorageMapIntoStorageVector
      Src: /src/raksha/src/ir/module_test.cc:120,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:121,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/ir/module_test.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - storage_names
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 123
    functionName: raksha::ir::TestCreateStorages
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::insert
    - std::vector::push_back
    - UnorderedElementsAreArray
    - EXPECT_THAT
    - raksha::ir::MakeNamedStorageMapIntoStorageVector
    - ModuleStorageTestFixture::name_not_in_storages
    - ModuleStorageTestFixture::module
    - ModuleStorageTestFixture::type_factory
    - ModuleStorageTestFixture::created_storages
    - std::vector::end
    linkageType: ''
    returnType: void
    signature: void TestCreateStorages(std::vector<std::string> storage_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/module_test.cc:131,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:131,1
    - Dst: name
      Src: /src/raksha/src/ir/module_test.cc:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - storage_names
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: raksha::ir::GetAddedStorageBehavesCorrectly
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - ModuleStorageTestFixture::created_storages
    - EXPECT_EQ
    - ModuleStorageTestFixture::module
    - name
    linkageType: ''
    returnType: void
    signature: void GetAddedStorageBehavesCorrectly(std::vector<std::string> storage_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/module_test.cc:140,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:140,1
    - Dst: ModuleStorageTestFixture::name_not_in_storages
      Src: /src/raksha/src/ir/module_test.cc:140,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/module_test.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - storage_names
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: raksha::ir::GetNotPresentStorageFails
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrCat
    - EXPECT_DEATH
    - ModuleStorageTestFixture::name_not_in_storages
    - ModuleStorageTestFixture::module
    linkageType: ''
    returnType: void
    signature: void GetNotPresentStorageFails(std::vector<std::string> storage_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:151,1
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:152,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/module_test.cc:154,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:155,1
    - Dst: ModuleStorageTestFixture::type_factory
      Src: /src/raksha/src/ir/module_test.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - storage_names
    - idx
    argTypes:
    - std::vector<std::string>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 158
    functionName: raksha::ir::CreateStorageSameNameDies
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - ModuleStorageTestFixture::created_storages
    - EXPECT_DEATH
    - ModuleStorageTestFixture::type_factory
    - ModuleStorageTestFixture::module
    linkageType: ''
    returnType: void
    signature: "void CreateStorageSameNameDies(std::vector<std::string> storage_names,\n
      \                              uint64_t idx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:167,1
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:168,1
    - Dst: Value
      Src: /src/raksha/src/ir/module_test.cc:170,1
    - Dst: Any
      Src: /src/raksha/src/ir/module_test.cc:170,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:171,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:172,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/module_test.cc:174,1
    - Dst: input_values
      Src: /src/raksha/src/ir/module_test.cc:174,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/ir/module_test.cc:175,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/module_test.cc:177,1
    - Dst: input_values
      Src: /src/raksha/src/ir/module_test.cc:177,1
    - Dst: IsEmpty
      Src: /src/raksha/src/ir/module_test.cc:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - storage_names
    - idx
    argTypes:
    - std::vector<std::string>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 180
    functionName: raksha::ir::AddValueToStorage
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - IsEmpty
    - Value
    - Any
    - UnorderedElementsAreArray
    - EXPECT_THAT
    - ModuleStorageTestFixture::module
    - ModuleStorageTestFixture::created_storages
    - input_values
    linkageType: ''
    returnType: void
    signature: void AddValueToStorage(std::vector<std::string> storage_names, uint64_t
      idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/module_test.cc:41,1
    - Dst: Module::blocks
      Src: /src/raksha/src/ir/module_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Module::blocks
    linkageType: ''
    returnType: void
    signature: void TEST(ModuleTest, DefaultConstructorCreatesEmptyBlocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/module_test.cc:46,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/module_test.cc:47,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/module_test.cc:48,1
    - Dst: std::move
      Src: /src/raksha/src/ir/module_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/module_test.cc:49,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/module_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/module_test.cc:50,1
    - Dst: parent_module
      Src: /src/raksha/src/ir/module_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - parent_module
    - Module::AddBlock
    - auto::get
    - std::addressof
    - std::move
    - std::make_unique<Block>
    linkageType: ''
    returnType: void
    signature: void TEST(ModuleTest, AddBlockReturnsPassedInBlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/raksha/src/ir/module_test.cc:56,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/module_test.cc:56,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/module_test.cc:56,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/module_test.cc:58,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/module_test.cc:58,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/module_test.cc:58,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/ir/module_test.cc:59,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/module_test.cc:60,1
    - Dst: Module::blocks
      Src: /src/raksha/src/ir/module_test.cc:60,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/module_test.cc:60,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/module_test.cc:61,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/module_test.cc:61,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/module_test.cc:62,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/module_test.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - Module::blocks
    - Module::AddBlock
    - testing::UnorderedElementsAre
    - std::addressof
    - testing::Pointer
    - EXPECT_THAT
    - testing::Eq
    - std::make_unique<Block>
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(ModuleTest, AddBlockUpdatesBlockList)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/module_test.cc:76,1
    - Dst: CreateStorage
      Src: /src/raksha/src/ir/module_test.cc:77,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/module_test.cc:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - storage_names
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: raksha::ir::ModuleStorageTestFixture::ModuleStorageTestFixture
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - CreateStorage
    - push_back
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void ModuleStorageTestFixture(std::vector<std::string> storage_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: '& module()'
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Module
    signature: Module & module()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: '& type_factory()'
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeFactory
    signature: TypeFactory & type_factory()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: '& created_storages()'
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<const Storage*>
    signature: std::vector<const Storage*> & created_storages()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: raksha::ir::ModuleStorageTestFixture::name_not_in_storages
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view name_not_in_storages()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/raksha/src/ir/module_test.cc:99,1
    - Dst: size
      Src: /src/raksha/src/ir/module_test.cc:99,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/module_test.cc:101,1
    - Dst: second::name
      Src: /src/raksha/src/ir/module_test.cc:101,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/module_test.cc:102,1
    - Dst: second::get
      Src: /src/raksha/src/ir/module_test.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' map'
    argTypes:
    - Module::NamedStorageMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: raksha::ir::MakeNamedStorageMapIntoStorageVector
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 3
    functionsReached:
    - std::vector::push_back
    - second::get
    - std::vector::reserve
    - second::name
    - CHECK
    - size
    linkageType: ''
    returnType: std::vector<const Storage*>
    signature: "std::vector<const Storage*> MakeNamedStorageMapIntoStorageVector(\n
      \   const Module::NamedStorageMap& map)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/module_test.cc:109,1
    - Dst: raksha::ir::MakeNamedStorageMapIntoStorageVector
      Src: /src/raksha/src/ir/module_test.cc:109,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:110,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/ir/module_test.cc:111,1
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:111,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:112,1
    - Dst: ModuleStorageTestFixture::name_not_in_storages
      Src: /src/raksha/src/ir/module_test.cc:113,1
    - Dst: ModuleStorageTestFixture::type_factory
      Src: /src/raksha/src/ir/module_test.cc:114,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/module_test.cc:116,1
    - Dst: std::vector::insert
      Src: /src/raksha/src/ir/module_test.cc:117,1
    - Dst: std::vector::end
      Src: /src/raksha/src/ir/module_test.cc:118,1
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:119,1
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:119,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/module_test.cc:120,1
    - Dst: raksha::ir::MakeNamedStorageMapIntoStorageVector
      Src: /src/raksha/src/ir/module_test.cc:120,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:121,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/ir/module_test.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - storage_names
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 123
    functionName: raksha::ir::TestCreateStorages
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::insert
    - std::vector::push_back
    - UnorderedElementsAreArray
    - EXPECT_THAT
    - raksha::ir::MakeNamedStorageMapIntoStorageVector
    - ModuleStorageTestFixture::name_not_in_storages
    - ModuleStorageTestFixture::module
    - ModuleStorageTestFixture::type_factory
    - ModuleStorageTestFixture::created_storages
    - std::vector::end
    linkageType: ''
    returnType: void
    signature: void TestCreateStorages(std::vector<std::string> storage_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/module_test.cc:131,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:131,1
    - Dst: name
      Src: /src/raksha/src/ir/module_test.cc:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - storage_names
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: raksha::ir::GetAddedStorageBehavesCorrectly
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - ModuleStorageTestFixture::created_storages
    - EXPECT_EQ
    - ModuleStorageTestFixture::module
    - name
    linkageType: ''
    returnType: void
    signature: void GetAddedStorageBehavesCorrectly(std::vector<std::string> storage_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/module_test.cc:140,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:140,1
    - Dst: ModuleStorageTestFixture::name_not_in_storages
      Src: /src/raksha/src/ir/module_test.cc:140,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/module_test.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - storage_names
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: raksha::ir::GetNotPresentStorageFails
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrCat
    - EXPECT_DEATH
    - ModuleStorageTestFixture::name_not_in_storages
    - ModuleStorageTestFixture::module
    linkageType: ''
    returnType: void
    signature: void GetNotPresentStorageFails(std::vector<std::string> storage_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:151,1
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:152,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/module_test.cc:154,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:155,1
    - Dst: ModuleStorageTestFixture::type_factory
      Src: /src/raksha/src/ir/module_test.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - storage_names
    - idx
    argTypes:
    - std::vector<std::string>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 158
    functionName: raksha::ir::CreateStorageSameNameDies
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - ModuleStorageTestFixture::created_storages
    - EXPECT_DEATH
    - ModuleStorageTestFixture::type_factory
    - ModuleStorageTestFixture::module
    linkageType: ''
    returnType: void
    signature: "void CreateStorageSameNameDies(std::vector<std::string> storage_names,\n
      \                              uint64_t idx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:167,1
    - Dst: ModuleStorageTestFixture::created_storages
      Src: /src/raksha/src/ir/module_test.cc:168,1
    - Dst: Value
      Src: /src/raksha/src/ir/module_test.cc:170,1
    - Dst: Any
      Src: /src/raksha/src/ir/module_test.cc:170,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:171,1
    - Dst: ModuleStorageTestFixture::module
      Src: /src/raksha/src/ir/module_test.cc:172,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/module_test.cc:174,1
    - Dst: input_values
      Src: /src/raksha/src/ir/module_test.cc:174,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/ir/module_test.cc:175,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/module_test.cc:177,1
    - Dst: input_values
      Src: /src/raksha/src/ir/module_test.cc:177,1
    - Dst: IsEmpty
      Src: /src/raksha/src/ir/module_test.cc:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - storage_names
    - idx
    argTypes:
    - std::vector<std::string>
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 180
    functionName: raksha::ir::AddValueToStorage
    functionSourceFile: /src/raksha/src/ir/module_test.cc
    functionUses: 0
    functionsReached:
    - IsEmpty
    - Value
    - Any
    - UnorderedElementsAreArray
    - EXPECT_THAT
    - ModuleStorageTestFixture::module
    - ModuleStorageTestFixture::created_storages
    - input_values
    linkageType: ''
    returnType: void
    signature: void AddValueToStorage(std::vector<std::string> storage_names, uint64_t
      idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/raksha/src/ir/module.h:42,1
    - Dst: std::move
      Src: /src/raksha/src/ir/module.h:43,1
    - Dst: std::move
      Src: /src/raksha/src/ir/module.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - parent
    - ' op'
    - attributes
    - inputs
    argTypes:
    - Block*
    - Operator
    - NamedAttributeMap
    - ValueList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: raksha::ir::Operation::Operation
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::addressof
    linkageType: ''
    returnType: void
    signature: "void Operation(const Block* parent, const Operator& op,\n            NamedAttributeMap
      attributes, ValueList inputs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' op'
    - attributes
    - inputs
    argTypes:
    - Operator
    - NamedAttributeMap
    - ValueList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: raksha::ir::Operation::Operation
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Operation(const Operator& op, NamedAttributeMap attributes, ValueList
      inputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' op'
    argTypes:
    - Operator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: raksha::ir::Operation::Operation
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Operation(const Operator& op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: raksha::ir::Operation::Operation
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Operation(const Operation&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: '& operator=(const Operation&)'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operation
    signature: Operation & operator=(const Operation&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: raksha::ir::Operation::Operation
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Operation(Operation&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: '& operator=(Operation&&)'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operation
    signature: Operation & operator=(Operation&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: ~Operation()
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Operation()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: '& op() const'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operator
    signature: Operator & op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: raksha::ir::Operation::parent
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Block
    signature: Block * parent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: '& inputs() const'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ValueList
    signature: ValueList & inputs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: '& attributes() const'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NamedAttributeMap
    signature: NamedAttributeMap & attributes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/module.h:65,1
    - Dst: size
      Src: /src/raksha/src/ir/module.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: '& GetInputValue(uint64_t index) const'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - size
    - CHECK
    linkageType: ''
    returnType: Value
    signature: Value & GetInputValue(uint64_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: number_of_return_values
      Src: /src/raksha/src/ir/module.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: raksha::ir::Operation::NumberOfOutputs
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - number_of_return_values
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t NumberOfOutputs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/module.h:72,1
    - Dst: number_of_return_values
      Src: /src/raksha/src/ir/module.h:72,1
    - Dst: raksha::ir::Value::MakeOperationResultValue
      Src: /src/raksha/src/ir/module.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: raksha::ir::Operation::GetOutputValue
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - raksha::ir::Value::MakeOperationResultValue
    - CHECK
    - number_of_return_values
    linkageType: ''
    returnType: Value
    signature: Value GetOutputValue(uint64_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/module.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - IRVisitor<Derived, Result, false>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: raksha::ir::Operation::Accept
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(IRVisitor<Derived, Result, false>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/module.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - IRVisitor<Derived, Result, true>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: raksha::ir::Operation::Accept
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(IRVisitor<Derived, Result, true>& visitor) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/module.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: raksha::ir::Operation::AddInput
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void AddInput(const Value& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace
      Src: /src/raksha/src/ir/module.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - ' value'
    argTypes:
    - std::string
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: raksha::ir::Operation::AddAttribute
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - emplace
    linkageType: ''
    returnType: void
    signature: void AddAttribute(const std::string name, const Attribute& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - parent
    argTypes:
    - Block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: raksha::ir::Operation::set_parent
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_parent(const Block* parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: raksha::ir::Block::Block
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Block()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: raksha::ir::Block::Block
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Block(const Block&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: '& operator=(const Block&)'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Block
    signature: Block & operator=(const Block&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: raksha::ir::Block::Block
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Block(Block&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: '& operator=(Block&&)'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Block
    signature: Block & operator=(Block&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: ~Block()
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Block()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: '& operations() const'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OperationList
    signature: OperationList & operations() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: '& inputs() const'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DataDeclCollection
    signature: DataDeclCollection & inputs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: '& outputs() const'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DataDeclCollection
    signature: DataDeclCollection & outputs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: '& results() const'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IndexedValueMap
    signature: IndexedValueMap & results() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: raksha::ir::Block::parent_module
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Module
    signature: Module * parent_module() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/module.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - IRVisitor<Derived, Result, false>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: raksha::ir::Block::Accept
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(IRVisitor<Derived, Result, false>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/module.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - IRVisitor<Derived, Result, true>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: raksha::ir::Block::Accept
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(IRVisitor<Derived, Result, true>& visitor) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: raksha::ir::Block::set_parent_module
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_parent_module(const Module& module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: raksha::ir::Module::Module
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Module()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: raksha::ir::Module::Module
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Module(const Module&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: '& operator=(const Module&)'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Module
    signature: Module & operator=(const Module&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: raksha::ir::Module::Module
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Module(Module&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: '& operator=(Module&&)'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Module
    signature: Module & operator=(Module&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: ~Module()
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Module()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/module.h:176,1
    - Dst: std::unique_ptr<Block>::parent_module
      Src: /src/raksha/src/ir/module.h:176,1
    - Dst: std::unique_ptr<Block>::set_parent_module
      Src: /src/raksha/src/ir/module.h:178,1
    - Dst: push_back
      Src: /src/raksha/src/ir/module.h:179,1
    - Dst: std::move
      Src: /src/raksha/src/ir/module.h:179,1
    - Dst: back
      Src: /src/raksha/src/ir/module.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - block
    argTypes:
    - std::unique_ptr<Block>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 181
    functionName: '& AddBlock(std::unique_ptr<Block> block)'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Block>::parent_module
    - std::unique_ptr<Block>::set_parent_module
    - std::move
    - CHECK
    - back
    - push_back
    linkageType: ''
    returnType: Block
    signature: Block & AddBlock(std::unique_ptr<Block> block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/ir/module.h:188,1
    - Dst: std::string
      Src: /src/raksha/src/ir/module.h:189,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/module.h:189,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/module.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - absl::string_view
    - ir::types::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: '& CreateStorage(absl::string_view name, ir::types::Type type)'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Storage>
    - CHECK
    - std::string
    - insert
    linkageType: ''
    returnType: Storage
    signature: Storage & CreateStorage(absl::string_view name, ir::types::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/ir/module.h:199,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/module.h:200,1
    - Dst: end
      Src: /src/raksha/src/ir/module.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: '& GetStorage(absl::string_view name) const'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - find
    - CHECK
    - end
    linkageType: ''
    returnType: Storage
    signature: Storage & GetStorage(absl::string_view name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/ir/module.h:206,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/module.h:207,1
    - Dst: end
      Src: /src/raksha/src/ir/module.h:207,1
    - Dst: auto::second::AddInputValue
      Src: /src/raksha/src/ir/module.h:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - storage_name
    - value
    argTypes:
    - absl::string_view
    - Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: raksha::ir::Module::AddInputValueToStorage
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - auto::second::AddInputValue
    - find
    - CHECK
    - end
    linkageType: ''
    returnType: void
    signature: void AddInputValueToStorage(absl::string_view storage_name, Value value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: '& blocks() const'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BlockListType
    signature: BlockListType & blocks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: '& named_storage_map() const'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NamedStorageMap
    signature: NamedStorageMap & named_storage_map() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/module.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - IRVisitor<Derived, Result, false>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 219
    functionName: raksha::ir::Module::Accept
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(IRVisitor<Derived, Result, false>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/module.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - IRVisitor<Derived, Result, true>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: raksha::ir::Module::Accept
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(IRVisitor<Derived, Result, true>& visitor) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/raksha/src/ir/module.h:42,1
    - Dst: std::move
      Src: /src/raksha/src/ir/module.h:43,1
    - Dst: std::move
      Src: /src/raksha/src/ir/module.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - parent
    - ' op'
    - attributes
    - inputs
    argTypes:
    - Block*
    - Operator
    - NamedAttributeMap
    - ValueList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: raksha::ir::Operation::Operation
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::addressof
    linkageType: ''
    returnType: void
    signature: "void Operation(const Block* parent, const Operator& op,\n            NamedAttributeMap
      attributes, ValueList inputs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' op'
    - attributes
    - inputs
    argTypes:
    - Operator
    - NamedAttributeMap
    - ValueList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: raksha::ir::Operation::Operation
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Operation(const Operator& op, NamedAttributeMap attributes, ValueList
      inputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' op'
    argTypes:
    - Operator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: raksha::ir::Operation::Operation
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Operation(const Operator& op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: raksha::ir::Operation::Operation
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Operation(const Operation&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: '& operator=(const Operation&)'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operation
    signature: Operation & operator=(const Operation&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: raksha::ir::Operation::Operation
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Operation(Operation&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: '& operator=(Operation&&)'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operation
    signature: Operation & operator=(Operation&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: ~Operation()
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Operation()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: '& op() const'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operator
    signature: Operator & op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: raksha::ir::Operation::parent
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Block
    signature: Block * parent() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: '& inputs() const'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ValueList
    signature: ValueList & inputs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: '& attributes() const'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NamedAttributeMap
    signature: NamedAttributeMap & attributes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/module.h:65,1
    - Dst: size
      Src: /src/raksha/src/ir/module.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: '& GetInputValue(uint64_t index) const'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - size
    - CHECK
    linkageType: ''
    returnType: Value
    signature: Value & GetInputValue(uint64_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: number_of_return_values
      Src: /src/raksha/src/ir/module.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: raksha::ir::Operation::NumberOfOutputs
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - number_of_return_values
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t NumberOfOutputs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/module.h:72,1
    - Dst: number_of_return_values
      Src: /src/raksha/src/ir/module.h:72,1
    - Dst: raksha::ir::Value::MakeOperationResultValue
      Src: /src/raksha/src/ir/module.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: raksha::ir::Operation::GetOutputValue
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - raksha::ir::Value::MakeOperationResultValue
    - CHECK
    - number_of_return_values
    linkageType: ''
    returnType: Value
    signature: Value GetOutputValue(uint64_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/module.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - IRVisitor<Derived, Result, false>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: raksha::ir::Operation::Accept
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(IRVisitor<Derived, Result, false>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/module.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - IRVisitor<Derived, Result, true>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: raksha::ir::Operation::Accept
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(IRVisitor<Derived, Result, true>& visitor) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/module.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: raksha::ir::Operation::AddInput
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void AddInput(const Value& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace
      Src: /src/raksha/src/ir/module.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - ' value'
    argTypes:
    - std::string
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: raksha::ir::Operation::AddAttribute
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - emplace
    linkageType: ''
    returnType: void
    signature: void AddAttribute(const std::string name, const Attribute& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - parent
    argTypes:
    - Block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: raksha::ir::Operation::set_parent
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_parent(const Block* parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: raksha::ir::Block::Block
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Block()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: raksha::ir::Block::Block
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Block(const Block&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: '& operator=(const Block&)'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Block
    signature: Block & operator=(const Block&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: raksha::ir::Block::Block
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Block(Block&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: '& operator=(Block&&)'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Block
    signature: Block & operator=(Block&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: ~Block()
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Block()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: '& operations() const'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OperationList
    signature: OperationList & operations() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: '& inputs() const'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DataDeclCollection
    signature: DataDeclCollection & inputs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: '& outputs() const'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DataDeclCollection
    signature: DataDeclCollection & outputs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: '& results() const'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IndexedValueMap
    signature: IndexedValueMap & results() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: raksha::ir::Block::parent_module
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Module
    signature: Module * parent_module() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/module.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - IRVisitor<Derived, Result, false>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: raksha::ir::Block::Accept
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(IRVisitor<Derived, Result, false>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/module.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - IRVisitor<Derived, Result, true>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: raksha::ir::Block::Accept
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(IRVisitor<Derived, Result, true>& visitor) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: raksha::ir::Block::set_parent_module
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_parent_module(const Module& module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: raksha::ir::Module::Module
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Module()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: raksha::ir::Module::Module
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Module(const Module&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: '& operator=(const Module&)'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Module
    signature: Module & operator=(const Module&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: raksha::ir::Module::Module
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Module(Module&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: '& operator=(Module&&)'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Module
    signature: Module & operator=(Module&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: ~Module()
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Module()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/module.h:176,1
    - Dst: std::unique_ptr<Block>::parent_module
      Src: /src/raksha/src/ir/module.h:176,1
    - Dst: std::unique_ptr<Block>::set_parent_module
      Src: /src/raksha/src/ir/module.h:178,1
    - Dst: push_back
      Src: /src/raksha/src/ir/module.h:179,1
    - Dst: std::move
      Src: /src/raksha/src/ir/module.h:179,1
    - Dst: back
      Src: /src/raksha/src/ir/module.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - block
    argTypes:
    - std::unique_ptr<Block>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 181
    functionName: '& AddBlock(std::unique_ptr<Block> block)'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Block>::parent_module
    - std::unique_ptr<Block>::set_parent_module
    - std::move
    - CHECK
    - back
    - push_back
    linkageType: ''
    returnType: Block
    signature: Block & AddBlock(std::unique_ptr<Block> block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/ir/module.h:188,1
    - Dst: std::string
      Src: /src/raksha/src/ir/module.h:189,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/module.h:189,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/module.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - absl::string_view
    - ir::types::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: '& CreateStorage(absl::string_view name, ir::types::Type type)'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Storage>
    - CHECK
    - std::string
    - insert
    linkageType: ''
    returnType: Storage
    signature: Storage & CreateStorage(absl::string_view name, ir::types::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/ir/module.h:199,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/module.h:200,1
    - Dst: end
      Src: /src/raksha/src/ir/module.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: '& GetStorage(absl::string_view name) const'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - find
    - CHECK
    - end
    linkageType: ''
    returnType: Storage
    signature: Storage & GetStorage(absl::string_view name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/ir/module.h:206,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/module.h:207,1
    - Dst: end
      Src: /src/raksha/src/ir/module.h:207,1
    - Dst: auto::second::AddInputValue
      Src: /src/raksha/src/ir/module.h:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - storage_name
    - value
    argTypes:
    - absl::string_view
    - Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: raksha::ir::Module::AddInputValueToStorage
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - auto::second::AddInputValue
    - find
    - CHECK
    - end
    linkageType: ''
    returnType: void
    signature: void AddInputValueToStorage(absl::string_view storage_name, Value value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    functionName: '& blocks() const'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BlockListType
    signature: BlockListType & blocks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: '& named_storage_map() const'
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NamedStorageMap
    signature: NamedStorageMap & named_storage_map() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/module.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - IRVisitor<Derived, Result, false>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 219
    functionName: raksha::ir::Module::Accept
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(IRVisitor<Derived, Result, false>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/module.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - IRVisitor<Derived, Result, true>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: raksha::ir::Module::Accept
    functionSourceFile: /src/raksha/src/ir/module.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(IRVisitor<Derived, Result, true>& visitor) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: raksha::ir::WrappedInt::WrappedInt
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WrappedInt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: raksha::ir::WrappedInt::WrappedInt
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WrappedInt(uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::ir::WrappedInt::WrappedInt
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WrappedInt(const WrappedInt&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: '& operator=(const WrappedInt&)'
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WrappedInt
    signature: WrappedInt & operator=(const WrappedInt&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::ir::WrappedInt::WrappedInt
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WrappedInt(WrappedInt&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: '& operator=(WrappedInt&&)'
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WrappedInt
    signature: WrappedInt & operator=(WrappedInt&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: ~WrappedInt()
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~WrappedInt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: operator*() const
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: raksha::ir::NonDefaultConstructorVisitor::NonDefaultConstructorVisitor
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonDefaultConstructorVisitor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WrappedInt
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: raksha::ir::NonDefaultConstructorVisitor::GetDefaultValue
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - WrappedInt
    linkageType: ''
    returnType: WrappedInt
    signature: WrappedInt GetDefaultValue() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WrappedInt
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - accumulator
    - child_result
    argTypes:
    - WrappedInt
    - WrappedInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: raksha::ir::NonDefaultConstructorVisitor::FoldResult
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - WrappedInt
    linkageType: ''
    returnType: WrappedInt
    signature: "WrappedInt FoldResult(WrappedInt accumulator,\n                        WrappedInt
      child_result) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:62,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:62,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:63,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:63,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::make_unique<Block>
    - Module::AddBlock
    - Module::Accept
    linkageType: ''
    returnType: void
    signature: "void TEST(IRTraversingVisitorTest,\n     GetDefaultValueWorksForNonDefaultConstructableValues)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - traversal_type
    argTypes:
    - TraversalType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: raksha::ir::CollectingVisitor::CollectingVisitor
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CollectingVisitor(TraversalType traversal_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:82,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:82,1
    - Dst: Unit
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: raksha::ir::CollectingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Module& module) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:86,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' module'
    - result
    argTypes:
    - Module
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: raksha::ir::CollectingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Module& module, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:91,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:91,1
    - Dst: Unit
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: raksha::ir::CollectingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Block& block) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:96,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' block'
    - result
    argTypes:
    - Block
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: raksha::ir::CollectingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Block& block, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:101,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:101,1
    - Dst: Unit
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: raksha::ir::CollectingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Operation& operation) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:106,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' operation'
    - result
    argTypes:
    - Operation
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: raksha::ir::CollectingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Operation& operation, Unit result) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: '& nodes() const'
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<const void*>
    signature: std::vector<const void*> & nodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:121,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:121,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:121,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:123,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:123,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:123,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:126,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:127,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:128,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:129,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:129,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:132,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:133,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:134,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:135,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:135,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:138,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:139,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:140,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:141,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:141,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 143
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - Module::AddBlock
    - CollectingVisitor::nodes
    - std::addressof
    - EXPECT_THAT
    - Module::Accept
    - std::make_unique<Block>
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesModuleAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:146,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:147,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:150,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:150,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:152,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:152,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:153,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:156,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:157,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:158,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:159,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:159,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:162,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:163,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:164,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:165,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:165,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:168,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:169,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:170,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:171,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:171,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 173
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - CollectingVisitor::nodes
    - auto::get
    - std::addressof
    - BlockBuilder::AddOperation
    - EXPECT_THAT
    - BlockBuilder::build
    - std::make_unique<Operator>
    - auto::Accept
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesBlockAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:176,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:177,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:183,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:184,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:184,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:185,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:185,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:188,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:189,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:189,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:190,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:190,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:193,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:194,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:194,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:195,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:195,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 197
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - CollectingVisitor::nodes
    - Operation::Accept
    - std::addressof
    - EXPECT_THAT
    - std::make_unique<Operator>
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesOperationAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - traversal_type
    argTypes:
    - TraversalType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: raksha::ir::ReturningVisitor::ReturningVisitor
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReturningVisitor(TraversalType traversal_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:215,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: raksha::ir::ReturningVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PreVisit(const Module& module) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::insert
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:219,1
    - Dst: ResultType::end
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:219,1
    - Dst: ResultType::begin
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:219,1
    - Dst: ResultType::end
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - result
    - child_result
    argTypes:
    - ResultType
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: raksha::ir::ReturningVisitor::FoldResult
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - ResultType::end
    - ResultType::insert
    - ResultType::begin
    linkageType: ''
    returnType: ResultType
    signature: ResultType FoldResult(ResultType result, ResultType child_result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:223,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' module'
    - result
    argTypes:
    - Module
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: raksha::ir::ReturningVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PostVisit(const Module& module, ResultType result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:229,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: raksha::ir::ReturningVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PreVisit(const Block& block) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:234,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' block'
    - result
    argTypes:
    - Block
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: raksha::ir::ReturningVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PostVisit(const Block& block, ResultType result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:240,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: raksha::ir::ReturningVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PreVisit(const Operation& operation) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:245,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' operation'
    - result
    argTypes:
    - Operation
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: raksha::ir::ReturningVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PostVisit(const Operation& operation, ResultType result)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:257,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:257,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:257,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:259,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:259,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:259,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:263,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:264,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:264,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:264,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:268,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:269,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:269,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:270,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:273,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:274,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:274,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:274,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 277
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - Module::AddBlock
    - std::addressof
    - EXPECT_THAT
    - Module::Accept
    - std::make_unique<Block>
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesModuleAsExpectedUsingReturns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:280,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:281,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:284,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:284,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:286,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:286,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:287,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:291,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:292,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:292,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:292,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:296,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:297,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:297,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:298,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:301,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:302,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:302,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:302,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 305
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - auto::get
    - std::addressof
    - BlockBuilder::AddOperation
    - EXPECT_THAT
    - BlockBuilder::build
    - std::make_unique<Operator>
    - auto::Accept
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesBlockAsExpectedUsingReturns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:308,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:309,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:315,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:316,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:316,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:316,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:319,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:320,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:320,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:320,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:323,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:324,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:324,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:324,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 326
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - Operation::Accept
    - std::addressof
    - EXPECT_THAT
    - std::make_unique<Operator>
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesOperationAsExpectedUsingReturns)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: raksha::ir::WrappedInt::WrappedInt
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WrappedInt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: raksha::ir::WrappedInt::WrappedInt
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WrappedInt(uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::ir::WrappedInt::WrappedInt
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WrappedInt(const WrappedInt&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: '& operator=(const WrappedInt&)'
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WrappedInt
    signature: WrappedInt & operator=(const WrappedInt&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::ir::WrappedInt::WrappedInt
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WrappedInt(WrappedInt&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: '& operator=(WrappedInt&&)'
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WrappedInt
    signature: WrappedInt & operator=(WrappedInt&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: ~WrappedInt()
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~WrappedInt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: operator*() const
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: raksha::ir::NonDefaultConstructorVisitor::NonDefaultConstructorVisitor
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonDefaultConstructorVisitor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WrappedInt
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: raksha::ir::NonDefaultConstructorVisitor::GetDefaultValue
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - WrappedInt
    linkageType: ''
    returnType: WrappedInt
    signature: WrappedInt GetDefaultValue() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WrappedInt
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - accumulator
    - child_result
    argTypes:
    - WrappedInt
    - WrappedInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: raksha::ir::NonDefaultConstructorVisitor::FoldResult
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - WrappedInt
    linkageType: ''
    returnType: WrappedInt
    signature: "WrappedInt FoldResult(WrappedInt accumulator,\n                        WrappedInt
      child_result) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:62,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:62,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:63,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:63,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::make_unique<Block>
    - Module::AddBlock
    - Module::Accept
    linkageType: ''
    returnType: void
    signature: "void TEST(IRTraversingVisitorTest,\n     GetDefaultValueWorksForNonDefaultConstructableValues)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - traversal_type
    argTypes:
    - TraversalType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: raksha::ir::CollectingVisitor::CollectingVisitor
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CollectingVisitor(TraversalType traversal_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:82,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:82,1
    - Dst: Unit
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: raksha::ir::CollectingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Module& module) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:86,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' module'
    - result
    argTypes:
    - Module
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: raksha::ir::CollectingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Module& module, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:91,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:91,1
    - Dst: Unit
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: raksha::ir::CollectingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Block& block) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:96,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' block'
    - result
    argTypes:
    - Block
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: raksha::ir::CollectingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Block& block, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:101,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:101,1
    - Dst: Unit
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: raksha::ir::CollectingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Operation& operation) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:106,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' operation'
    - result
    argTypes:
    - Operation
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: raksha::ir::CollectingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Operation& operation, Unit result) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: '& nodes() const'
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<const void*>
    signature: std::vector<const void*> & nodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:121,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:121,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:121,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:123,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:123,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:123,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:126,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:127,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:128,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:129,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:129,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:132,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:133,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:134,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:135,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:135,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:138,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:139,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:140,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:141,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:141,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 143
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - Module::AddBlock
    - CollectingVisitor::nodes
    - std::addressof
    - EXPECT_THAT
    - Module::Accept
    - std::make_unique<Block>
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesModuleAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:146,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:147,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:150,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:150,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:152,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:152,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:153,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:156,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:157,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:158,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:159,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:159,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:162,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:163,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:164,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:165,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:165,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:168,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:169,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:170,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:171,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:171,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 173
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - CollectingVisitor::nodes
    - auto::get
    - std::addressof
    - BlockBuilder::AddOperation
    - EXPECT_THAT
    - BlockBuilder::build
    - std::make_unique<Operator>
    - auto::Accept
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesBlockAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:176,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:177,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:183,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:184,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:184,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:185,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:185,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:188,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:189,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:189,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:190,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:190,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:193,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:194,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:194,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:195,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:195,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 197
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - CollectingVisitor::nodes
    - Operation::Accept
    - std::addressof
    - EXPECT_THAT
    - std::make_unique<Operator>
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesOperationAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - traversal_type
    argTypes:
    - TraversalType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: raksha::ir::ReturningVisitor::ReturningVisitor
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReturningVisitor(TraversalType traversal_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:215,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: raksha::ir::ReturningVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PreVisit(const Module& module) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::insert
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:219,1
    - Dst: ResultType::end
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:219,1
    - Dst: ResultType::begin
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:219,1
    - Dst: ResultType::end
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - result
    - child_result
    argTypes:
    - ResultType
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: raksha::ir::ReturningVisitor::FoldResult
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - ResultType::end
    - ResultType::insert
    - ResultType::begin
    linkageType: ''
    returnType: ResultType
    signature: ResultType FoldResult(ResultType result, ResultType child_result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:223,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' module'
    - result
    argTypes:
    - Module
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: raksha::ir::ReturningVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PostVisit(const Module& module, ResultType result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:229,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: raksha::ir::ReturningVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PreVisit(const Block& block) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:234,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' block'
    - result
    argTypes:
    - Block
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: raksha::ir::ReturningVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PostVisit(const Block& block, ResultType result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:240,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: raksha::ir::ReturningVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PreVisit(const Operation& operation) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:245,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' operation'
    - result
    argTypes:
    - Operation
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: raksha::ir::ReturningVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PostVisit(const Operation& operation, ResultType result)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:257,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:257,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:257,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:259,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:259,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:259,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:263,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:264,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:264,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:264,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:268,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:269,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:269,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:270,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:273,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:274,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:274,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:274,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 277
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - Module::AddBlock
    - std::addressof
    - EXPECT_THAT
    - Module::Accept
    - std::make_unique<Block>
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesModuleAsExpectedUsingReturns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:280,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:281,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:284,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:284,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:286,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:286,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:287,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:291,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:292,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:292,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:292,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:296,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:297,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:297,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:298,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:301,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:302,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:302,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:302,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 305
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - auto::get
    - std::addressof
    - BlockBuilder::AddOperation
    - EXPECT_THAT
    - BlockBuilder::build
    - std::make_unique<Operator>
    - auto::Accept
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesBlockAsExpectedUsingReturns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:308,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:309,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:315,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:316,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:316,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:316,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:319,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:320,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:320,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:320,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:323,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:324,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:324,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:324,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 326
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - Operation::Accept
    - std::addressof
    - EXPECT_THAT
    - std::make_unique<Operator>
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesOperationAsExpectedUsingReturns)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: raksha::ir::WrappedInt::WrappedInt
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WrappedInt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: raksha::ir::WrappedInt::WrappedInt
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WrappedInt(uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::ir::WrappedInt::WrappedInt
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WrappedInt(const WrappedInt&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: '& operator=(const WrappedInt&)'
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WrappedInt
    signature: WrappedInt & operator=(const WrappedInt&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::ir::WrappedInt::WrappedInt
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WrappedInt(WrappedInt&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: '& operator=(WrappedInt&&)'
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WrappedInt
    signature: WrappedInt & operator=(WrappedInt&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: ~WrappedInt()
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~WrappedInt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: operator*() const
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: raksha::ir::NonDefaultConstructorVisitor::NonDefaultConstructorVisitor
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonDefaultConstructorVisitor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WrappedInt
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: raksha::ir::NonDefaultConstructorVisitor::GetDefaultValue
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - WrappedInt
    linkageType: ''
    returnType: WrappedInt
    signature: WrappedInt GetDefaultValue() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WrappedInt
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - accumulator
    - child_result
    argTypes:
    - WrappedInt
    - WrappedInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: raksha::ir::NonDefaultConstructorVisitor::FoldResult
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - WrappedInt
    linkageType: ''
    returnType: WrappedInt
    signature: "WrappedInt FoldResult(WrappedInt accumulator,\n                        WrappedInt
      child_result) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:62,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:62,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:63,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:63,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::make_unique<Block>
    - Module::AddBlock
    - Module::Accept
    linkageType: ''
    returnType: void
    signature: "void TEST(IRTraversingVisitorTest,\n     GetDefaultValueWorksForNonDefaultConstructableValues)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - traversal_type
    argTypes:
    - TraversalType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: raksha::ir::CollectingVisitor::CollectingVisitor
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CollectingVisitor(TraversalType traversal_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:82,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:82,1
    - Dst: Unit
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: raksha::ir::CollectingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Module& module) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:86,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' module'
    - result
    argTypes:
    - Module
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: raksha::ir::CollectingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Module& module, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:91,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:91,1
    - Dst: Unit
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: raksha::ir::CollectingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Block& block) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:96,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' block'
    - result
    argTypes:
    - Block
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: raksha::ir::CollectingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Block& block, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:101,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:101,1
    - Dst: Unit
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: raksha::ir::CollectingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Operation& operation) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:106,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' operation'
    - result
    argTypes:
    - Operation
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: raksha::ir::CollectingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Operation& operation, Unit result) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: '& nodes() const'
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<const void*>
    signature: std::vector<const void*> & nodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:121,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:121,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:121,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:123,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:123,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:123,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:126,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:127,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:128,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:129,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:129,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:132,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:133,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:134,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:135,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:135,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:138,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:139,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:140,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:141,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:141,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 143
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - Module::AddBlock
    - CollectingVisitor::nodes
    - std::addressof
    - EXPECT_THAT
    - Module::Accept
    - std::make_unique<Block>
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesModuleAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:146,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:147,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:150,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:150,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:152,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:152,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:153,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:156,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:157,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:158,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:159,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:159,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:162,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:163,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:164,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:165,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:165,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:168,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:169,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:170,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:171,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:171,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 173
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - CollectingVisitor::nodes
    - auto::get
    - std::addressof
    - BlockBuilder::AddOperation
    - EXPECT_THAT
    - BlockBuilder::build
    - std::make_unique<Operator>
    - auto::Accept
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesBlockAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:176,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:177,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:183,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:184,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:184,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:185,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:185,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:188,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:189,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:189,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:190,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:190,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:193,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:194,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:194,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:195,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:195,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 197
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - CollectingVisitor::nodes
    - Operation::Accept
    - std::addressof
    - EXPECT_THAT
    - std::make_unique<Operator>
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesOperationAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - traversal_type
    argTypes:
    - TraversalType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: raksha::ir::ReturningVisitor::ReturningVisitor
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReturningVisitor(TraversalType traversal_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:215,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: raksha::ir::ReturningVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PreVisit(const Module& module) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::insert
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:219,1
    - Dst: ResultType::end
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:219,1
    - Dst: ResultType::begin
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:219,1
    - Dst: ResultType::end
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - result
    - child_result
    argTypes:
    - ResultType
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: raksha::ir::ReturningVisitor::FoldResult
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - ResultType::end
    - ResultType::insert
    - ResultType::begin
    linkageType: ''
    returnType: ResultType
    signature: ResultType FoldResult(ResultType result, ResultType child_result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:223,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' module'
    - result
    argTypes:
    - Module
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: raksha::ir::ReturningVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PostVisit(const Module& module, ResultType result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:229,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: raksha::ir::ReturningVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PreVisit(const Block& block) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:234,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' block'
    - result
    argTypes:
    - Block
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: raksha::ir::ReturningVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PostVisit(const Block& block, ResultType result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:240,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: raksha::ir::ReturningVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PreVisit(const Operation& operation) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:245,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' operation'
    - result
    argTypes:
    - Operation
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: raksha::ir::ReturningVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PostVisit(const Operation& operation, ResultType result)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:257,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:257,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:257,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:259,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:259,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:259,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:263,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:264,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:264,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:264,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:268,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:269,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:269,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:270,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:273,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:274,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:274,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:274,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 277
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - Module::AddBlock
    - std::addressof
    - EXPECT_THAT
    - Module::Accept
    - std::make_unique<Block>
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesModuleAsExpectedUsingReturns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:280,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:281,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:284,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:284,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:286,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:286,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:287,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:291,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:292,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:292,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:292,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:296,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:297,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:297,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:298,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:301,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:302,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:302,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:302,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 305
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - auto::get
    - std::addressof
    - BlockBuilder::AddOperation
    - EXPECT_THAT
    - BlockBuilder::build
    - std::make_unique<Operator>
    - auto::Accept
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesBlockAsExpectedUsingReturns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:308,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:309,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:315,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:316,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:316,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:316,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:319,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:320,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:320,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:320,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:323,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:324,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:324,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:324,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 326
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - Operation::Accept
    - std::addressof
    - EXPECT_THAT
    - std::make_unique<Operator>
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesOperationAsExpectedUsingReturns)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: raksha::ir::WrappedInt::WrappedInt
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WrappedInt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: raksha::ir::WrappedInt::WrappedInt
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WrappedInt(uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::ir::WrappedInt::WrappedInt
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WrappedInt(const WrappedInt&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: '& operator=(const WrappedInt&)'
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WrappedInt
    signature: WrappedInt & operator=(const WrappedInt&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::ir::WrappedInt::WrappedInt
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WrappedInt(WrappedInt&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: '& operator=(WrappedInt&&)'
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WrappedInt
    signature: WrappedInt & operator=(WrappedInt&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: ~WrappedInt()
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~WrappedInt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: operator*() const
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: raksha::ir::NonDefaultConstructorVisitor::NonDefaultConstructorVisitor
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonDefaultConstructorVisitor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WrappedInt
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: raksha::ir::NonDefaultConstructorVisitor::GetDefaultValue
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - WrappedInt
    linkageType: ''
    returnType: WrappedInt
    signature: WrappedInt GetDefaultValue() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WrappedInt
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - accumulator
    - child_result
    argTypes:
    - WrappedInt
    - WrappedInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: raksha::ir::NonDefaultConstructorVisitor::FoldResult
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - WrappedInt
    linkageType: ''
    returnType: WrappedInt
    signature: "WrappedInt FoldResult(WrappedInt accumulator,\n                        WrappedInt
      child_result) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:62,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:62,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:63,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:63,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::make_unique<Block>
    - Module::AddBlock
    - Module::Accept
    linkageType: ''
    returnType: void
    signature: "void TEST(IRTraversingVisitorTest,\n     GetDefaultValueWorksForNonDefaultConstructableValues)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - traversal_type
    argTypes:
    - TraversalType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: raksha::ir::CollectingVisitor::CollectingVisitor
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CollectingVisitor(TraversalType traversal_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:82,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:82,1
    - Dst: Unit
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: raksha::ir::CollectingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Module& module) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:86,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' module'
    - result
    argTypes:
    - Module
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: raksha::ir::CollectingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Module& module, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:91,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:91,1
    - Dst: Unit
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: raksha::ir::CollectingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Block& block) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:96,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' block'
    - result
    argTypes:
    - Block
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: raksha::ir::CollectingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Block& block, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:101,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:101,1
    - Dst: Unit
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: raksha::ir::CollectingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Operation& operation) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:106,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' operation'
    - result
    argTypes:
    - Operation
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: raksha::ir::CollectingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    - std::addressof
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Operation& operation, Unit result) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: '& nodes() const'
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<const void*>
    signature: std::vector<const void*> & nodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:121,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:121,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:121,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:123,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:123,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:123,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:126,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:127,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:128,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:129,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:129,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:132,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:133,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:134,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:135,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:135,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:138,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:139,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:140,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:141,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:141,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 143
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - Module::AddBlock
    - CollectingVisitor::nodes
    - std::addressof
    - EXPECT_THAT
    - Module::Accept
    - std::make_unique<Block>
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesModuleAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:146,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:147,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:150,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:150,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:152,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:152,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:153,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:156,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:157,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:158,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:159,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:159,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:162,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:163,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:164,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:165,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:165,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:168,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:169,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:170,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:171,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:171,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 173
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - CollectingVisitor::nodes
    - auto::get
    - std::addressof
    - BlockBuilder::AddOperation
    - EXPECT_THAT
    - BlockBuilder::build
    - std::make_unique<Operator>
    - auto::Accept
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesBlockAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:176,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:177,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:183,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:184,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:184,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:185,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:185,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:188,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:189,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:189,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:190,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:190,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:193,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:194,1
    - Dst: CollectingVisitor::nodes
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:194,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:195,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:195,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 197
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - CollectingVisitor::nodes
    - Operation::Accept
    - std::addressof
    - EXPECT_THAT
    - std::make_unique<Operator>
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesOperationAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - traversal_type
    argTypes:
    - TraversalType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: raksha::ir::ReturningVisitor::ReturningVisitor
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReturningVisitor(TraversalType traversal_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:215,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: raksha::ir::ReturningVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PreVisit(const Module& module) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::insert
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:219,1
    - Dst: ResultType::end
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:219,1
    - Dst: ResultType::begin
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:219,1
    - Dst: ResultType::end
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - result
    - child_result
    argTypes:
    - ResultType
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: raksha::ir::ReturningVisitor::FoldResult
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - ResultType::end
    - ResultType::insert
    - ResultType::begin
    linkageType: ''
    returnType: ResultType
    signature: ResultType FoldResult(ResultType result, ResultType child_result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:223,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' module'
    - result
    argTypes:
    - Module
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: raksha::ir::ReturningVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PostVisit(const Module& module, ResultType result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:229,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: raksha::ir::ReturningVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PreVisit(const Block& block) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:234,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' block'
    - result
    argTypes:
    - Block
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: raksha::ir::ReturningVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PostVisit(const Block& block, ResultType result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:240,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: raksha::ir::ReturningVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PreVisit(const Operation& operation) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ResultType::push_back
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:245,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' operation'
    - result
    argTypes:
    - Operation
    - ResultType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: raksha::ir::ReturningVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::addressof
    - ResultType::push_back
    linkageType: ''
    returnType: ResultType
    signature: ResultType PostVisit(const Operation& operation, ResultType result)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:257,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:257,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:257,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:259,1
    - Dst: Module::AddBlock
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:259,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:259,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:263,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:264,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:264,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:264,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:268,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:269,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:269,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:270,1
    - Dst: Module::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:273,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:274,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:274,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:274,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 277
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - Module::AddBlock
    - std::addressof
    - EXPECT_THAT
    - Module::Accept
    - std::make_unique<Block>
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesModuleAsExpectedUsingReturns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:280,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:281,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:284,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:284,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:286,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:286,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:287,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:291,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:292,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:292,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:292,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:296,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:297,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:297,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:298,1
    - Dst: auto::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:301,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:302,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:302,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:302,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 305
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - auto::get
    - std::addressof
    - BlockBuilder::AddOperation
    - EXPECT_THAT
    - BlockBuilder::build
    - std::make_unique<Operator>
    - auto::Accept
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesBlockAsExpectedUsingReturns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:308,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:309,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:315,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:316,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:316,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:316,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:319,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:320,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:320,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:320,1
    - Dst: Operation::Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:323,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:324,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:324,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:324,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_traversing_visitor_test.cc:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 326
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - Operation::Accept
    - std::addressof
    - EXPECT_THAT
    - std::make_unique<Operator>
    linkageType: ''
    returnType: void
    signature: void TEST(IRTraversingVisitorTest, TraversesOperationAsExpectedUsingReturns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/selector.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - field_selector
    argTypes:
    - FieldSelector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: raksha::ir::Selector::Selector
    functionSourceFile: /src/raksha/src/ir/selector.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Selector(FieldSelector field_selector)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: raksha::ir::Selector::variant
    functionSourceFile: /src/raksha/src/ir/selector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::variant<FieldSelector>
    signature: std::variant<FieldSelector> variant() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/raksha/src/ir/selector.h:44,1
    - Dst: raksha::ir::Selector::ToString
      Src: /src/raksha/src/ir/selector.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: raksha::ir::Selector::ToString
    functionSourceFile: /src/raksha/src/ir/selector.h
    functionUses: 1
    functionsReached:
    - raksha::ir::Selector::ToString
    - std::visit
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Selector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: operator==(const Selector &other) const
    functionSourceFile: /src/raksha/src/ir/selector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Selector &other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/selector.h:62,1
    - Dst: std::move
      Src: /src/raksha/src/ir/selector.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - selector
    argTypes:
    - H
    - Selector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: raksha::ir::Selector::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/selector.h
    functionUses: 0
    functionsReached:
    - H::combine
    - std::move
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const Selector &selector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/selector.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - field_selector
    argTypes:
    - FieldSelector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: raksha::ir::Selector::Selector
    functionSourceFile: /src/raksha/src/ir/selector.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Selector(FieldSelector field_selector)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: raksha::ir::Selector::variant
    functionSourceFile: /src/raksha/src/ir/selector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::variant<FieldSelector>
    signature: std::variant<FieldSelector> variant() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/raksha/src/ir/selector.h:44,1
    - Dst: raksha::ir::Selector::ToString
      Src: /src/raksha/src/ir/selector.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: raksha::ir::Selector::ToString
    functionSourceFile: /src/raksha/src/ir/selector.h
    functionUses: 2
    functionsReached:
    - raksha::ir::Selector::ToString
    - std::visit
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Selector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: operator==(const Selector &other) const
    functionSourceFile: /src/raksha/src/ir/selector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Selector &other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/selector.h:62,1
    - Dst: std::move
      Src: /src/raksha/src/ir/selector.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - selector
    argTypes:
    - H
    - Selector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: raksha::ir::Selector::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/selector.h
    functionUses: 0
    functionsReached:
    - H::combine
    - std::move
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const Selector &selector)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: raksha::ir::SsaNames::SsaNames
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SsaNames()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: raksha::ir::SsaNames::SsaNames
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SsaNames(const SsaNames &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: '&operator=(const SsaNames &)'
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SsaNames
    signature: SsaNames &operator=(const SsaNames &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: raksha::ir::SsaNames::SsaNames
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SsaNames(SsaNames &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: '&operator=(SsaNames &&)'
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SsaNames
    signature: SsaNames &operator=(SsaNames &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: ~SsaNames()
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~SsaNames()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - block
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: raksha::ir::SsaNames::GetOrCreateID
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 1
    functionsReached:
    - raksha::ir::SsaNames::GetOrCreateID
    linkageType: ''
    returnType: ID
    signature: ID GetOrCreateID(const Block &block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/ssa_names.h:47,1
    - Dst: FindID
      Src: /src/raksha/src/ir/ssa_names.h:47,1
    - Dst: UpdateID
      Src: /src/raksha/src/ir/ssa_names.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - block
    - id
    argTypes:
    - Block
    - ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: raksha::ir::SsaNames::AddID
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached:
    - UpdateID
    - FindID
    - CHECK
    linkageType: ''
    returnType: ID
    signature: ID AddID(const Block &block, ID id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: raksha::ir::SsaNames::GetOrCreateID
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 2
    functionsReached:
    - raksha::ir::SsaNames::GetOrCreateID
    linkageType: ''
    returnType: ID
    signature: ID GetOrCreateID(const Module &module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/ssa_names.h:56,1
    - Dst: FindID
      Src: /src/raksha/src/ir/ssa_names.h:56,1
    - Dst: UpdateID
      Src: /src/raksha/src/ir/ssa_names.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - id
    argTypes:
    - Module
    - ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: raksha::ir::SsaNames::AddID
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached:
    - UpdateID
    - FindID
    - CHECK
    linkageType: ''
    returnType: ID
    signature: ID AddID(const Module &module, ID id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: raksha::ir::SsaNames::GetOrCreateID
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 3
    functionsReached:
    - raksha::ir::SsaNames::GetOrCreateID
    linkageType: ''
    returnType: ID
    signature: ID GetOrCreateID(Value value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/ssa_names.h:64,1
    - Dst: FindID
      Src: /src/raksha/src/ir/ssa_names.h:64,1
    - Dst: UpdateID
      Src: /src/raksha/src/ir/ssa_names.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - id
    argTypes:
    - Value
    - ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: raksha::ir::SsaNames::AddID
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached:
    - UpdateID
    - FindID
    - CHECK
    linkageType: ''
    returnType: ID
    signature: ID AddID(Value value, ID id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: raksha::ir::SsaNames::IDManager::IDManager
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IDManager(absl::string_view prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/ir/ssa_names.h:79,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/ssa_names.h:79,1
    - Dst: size
      Src: /src/raksha/src/ir/ssa_names.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entity
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: raksha::ir::SsaNames::IDManager::GetOrCreateID
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached:
    - absl::StrCat
    - size
    - insert
    linkageType: ''
    returnType: ID
    signature: ID GetOrCreateID(T entity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert_or_assign
      Src: /src/raksha/src/ir/ssa_names.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - entity
    - id
    argTypes:
    - T
    - ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: raksha::ir::SsaNames::IDManager::UpdateID
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached:
    - insert_or_assign
    linkageType: ''
    returnType: ID
    signature: ID UpdateID(T entity, ID id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/ir/ssa_names.h:91,1
    - Dst: end
      Src: /src/raksha/src/ir/ssa_names.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entity
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: raksha::ir::SsaNames::IDManager::FindID
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached:
    - find
    - end
    linkageType: ''
    returnType: bool
    signature: bool FindID(T entity)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: raksha::ir::SsaNames::SsaNames
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SsaNames()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: raksha::ir::SsaNames::SsaNames
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SsaNames(const SsaNames &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: '&operator=(const SsaNames &)'
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SsaNames
    signature: SsaNames &operator=(const SsaNames &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: raksha::ir::SsaNames::SsaNames
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SsaNames(SsaNames &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: '&operator=(SsaNames &&)'
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SsaNames
    signature: SsaNames &operator=(SsaNames &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: ~SsaNames()
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~SsaNames()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - block
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: raksha::ir::SsaNames::GetOrCreateID
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 4
    functionsReached:
    - raksha::ir::SsaNames::GetOrCreateID
    linkageType: ''
    returnType: ID
    signature: ID GetOrCreateID(const Block &block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/ssa_names.h:47,1
    - Dst: FindID
      Src: /src/raksha/src/ir/ssa_names.h:47,1
    - Dst: UpdateID
      Src: /src/raksha/src/ir/ssa_names.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - block
    - id
    argTypes:
    - Block
    - ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: raksha::ir::SsaNames::AddID
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached:
    - UpdateID
    - FindID
    - CHECK
    linkageType: ''
    returnType: ID
    signature: ID AddID(const Block &block, ID id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: raksha::ir::SsaNames::GetOrCreateID
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 5
    functionsReached:
    - raksha::ir::SsaNames::GetOrCreateID
    linkageType: ''
    returnType: ID
    signature: ID GetOrCreateID(const Module &module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/ssa_names.h:56,1
    - Dst: FindID
      Src: /src/raksha/src/ir/ssa_names.h:56,1
    - Dst: UpdateID
      Src: /src/raksha/src/ir/ssa_names.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - id
    argTypes:
    - Module
    - ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: raksha::ir::SsaNames::AddID
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached:
    - UpdateID
    - FindID
    - CHECK
    linkageType: ''
    returnType: ID
    signature: ID AddID(const Module &module, ID id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: raksha::ir::SsaNames::GetOrCreateID
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 6
    functionsReached:
    - raksha::ir::SsaNames::GetOrCreateID
    linkageType: ''
    returnType: ID
    signature: ID GetOrCreateID(Value value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/ssa_names.h:64,1
    - Dst: FindID
      Src: /src/raksha/src/ir/ssa_names.h:64,1
    - Dst: UpdateID
      Src: /src/raksha/src/ir/ssa_names.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - id
    argTypes:
    - Value
    - ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: raksha::ir::SsaNames::AddID
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached:
    - UpdateID
    - FindID
    - CHECK
    linkageType: ''
    returnType: ID
    signature: ID AddID(Value value, ID id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: raksha::ir::SsaNames::IDManager::IDManager
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IDManager(absl::string_view prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/ir/ssa_names.h:79,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/ssa_names.h:79,1
    - Dst: size
      Src: /src/raksha/src/ir/ssa_names.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entity
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: raksha::ir::SsaNames::IDManager::GetOrCreateID
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached:
    - absl::StrCat
    - size
    - insert
    linkageType: ''
    returnType: ID
    signature: ID GetOrCreateID(T entity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert_or_assign
      Src: /src/raksha/src/ir/ssa_names.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - entity
    - id
    argTypes:
    - T
    - ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: raksha::ir::SsaNames::IDManager::UpdateID
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached:
    - insert_or_assign
    linkageType: ''
    returnType: ID
    signature: ID UpdateID(T entity, ID id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/ir/ssa_names.h:91,1
    - Dst: end
      Src: /src/raksha/src/ir/ssa_names.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entity
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: raksha::ir::SsaNames::IDManager::FindID
    functionSourceFile: /src/raksha/src/ir/ssa_names.h
    functionUses: 0
    functionsReached:
    - find
    - end
    linkageType: ''
    returnType: bool
    signature: bool FindID(T entity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/block_builder.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: raksha::ir::BlockBuilder::BlockBuilder
    functionSourceFile: /src/raksha/src/ir/block_builder.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Block>
    linkageType: ''
    returnType: void
    signature: void BlockBuilder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:34,1
    - Dst: IsBuilt
      Src: /src/raksha/src/ir/block_builder.h:34,1
    - Dst: inputs_::AddDecl
      Src: /src/raksha/src/ir/block_builder.h:36,1
    - Dst: std::move
      Src: /src/raksha/src/ir/block_builder.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - absl::string_view
    - types::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: '& AddInput(absl::string_view name, types::Type type)'
    functionSourceFile: /src/raksha/src/ir/block_builder.h
    functionUses: 0
    functionsReached:
    - inputs_::AddDecl
    - std::move
    - IsBuilt
    - CHECK
    linkageType: ''
    returnType: BlockBuilder
    signature: BlockBuilder & AddInput(absl::string_view name, types::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:41,1
    - Dst: IsBuilt
      Src: /src/raksha/src/ir/block_builder.h:41,1
    - Dst: outputs_::AddDecl
      Src: /src/raksha/src/ir/block_builder.h:43,1
    - Dst: std::move
      Src: /src/raksha/src/ir/block_builder.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - absl::string_view
    - types::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: '& AddOutput(absl::string_view name, types::Type type)'
    functionSourceFile: /src/raksha/src/ir/block_builder.h
    functionUses: 0
    functionsReached:
    - outputs_::AddDecl
    - std::move
    - IsBuilt
    - CHECK
    linkageType: ''
    returnType: BlockBuilder
    signature: BlockBuilder & AddOutput(absl::string_view name, types::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:48,1
    - Dst: IsBuilt
      Src: /src/raksha/src/ir/block_builder.h:48,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:50,1
    - Dst: outputs_::FindDecl
      Src: /src/raksha/src/ir/block_builder.h:50,1
    - Dst: results_::insert
      Src: /src/raksha/src/ir/block_builder.h:52,1
    - Dst: std::string
      Src: /src/raksha/src/ir/block_builder.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - name
    - output
    argTypes:
    - absl::string_view
    - Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: '& AddResult(absl::string_view name, Value output)'
    functionSourceFile: /src/raksha/src/ir/block_builder.h
    functionUses: 0
    functionsReached:
    - results_::insert
    - IsBuilt
    - CHECK
    - outputs_::FindDecl
    - std::string
    linkageType: ''
    returnType: BlockBuilder
    signature: BlockBuilder & AddResult(absl::string_view name, Value output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddOperation
      Src: /src/raksha/src/ir/block_builder.h:60,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder.h:60,1
    - Dst: std::move
      Src: /src/raksha/src/ir/block_builder.h:60,1
    - Dst: std::move
      Src: /src/raksha/src/ir/block_builder.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' op'
    - attributes
    - inputs
    argTypes:
    - Operator
    - NamedAttributeMap
    - ValueList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: "& AddOperation(const Operator& op,\n                                NamedAttributeMap
      attributes,\n                                ValueList inputs)"
    functionSourceFile: /src/raksha/src/ir/block_builder.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Operation>
    - AddOperation
    linkageType: ''
    returnType: Operation
    signature: "Operation & AddOperation(const Operator& op,\n                                NamedAttributeMap
      attributes,\n                                ValueList inputs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:67,1
    - Dst: IsBuilt
      Src: /src/raksha/src/ir/block_builder.h:67,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:69,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:70,1
    - Dst: std::unique_ptr<Operation>::parent
      Src: /src/raksha/src/ir/block_builder.h:70,1
    - Dst: std::unique_ptr<Operation>::set_parent
      Src: /src/raksha/src/ir/block_builder.h:73,1
    - Dst: get
      Src: /src/raksha/src/ir/block_builder.h:73,1
    - Dst: operations_::push_back
      Src: /src/raksha/src/ir/block_builder.h:74,1
    - Dst: std::move
      Src: /src/raksha/src/ir/block_builder.h:74,1
    - Dst: operations_::back
      Src: /src/raksha/src/ir/block_builder.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - std::unique_ptr<Operation>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 76
    functionName: '& AddOperation(std::unique_ptr<Operation> op)'
    functionSourceFile: /src/raksha/src/ir/block_builder.h
    functionUses: 0
    functionsReached:
    - get
    - std::unique_ptr<Operation>::parent
    - operations_::push_back
    - IsBuilt
    - std::move
    - CHECK
    - operations_::back
    - std::unique_ptr<Operation>::set_parent
    linkageType: ''
    returnType: Operation
    signature: Operation & AddOperation(std::unique_ptr<Operation> op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:87,1
    - Dst: raksha::ir::BlockBuilder::IsBuilt
      Src: /src/raksha/src/ir/block_builder.h:87,1
    - Dst: raksha::analysis::taint::IfcTags::Create
      Src: /src/raksha/src/ir/block_builder.h:90,1
    - Dst: get
      Src: /src/raksha/src/ir/block_builder.h:90,1
    - Dst: std::forward<Args>
      Src: /src/raksha/src/ir/block_builder.h:90,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:91,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:93,1
    - Dst: std::unique_ptr::parent
      Src: /src/raksha/src/ir/block_builder.h:93,1
    - Dst: get
      Src: /src/raksha/src/ir/block_builder.h:93,1
    - Dst: operations_::push_back
      Src: /src/raksha/src/ir/block_builder.h:95,1
    - Dst: std::move
      Src: /src/raksha/src/ir/block_builder.h:95,1
    - Dst: operations_::back
      Src: /src/raksha/src/ir/block_builder.h:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 97
    functionName: raksha::ir::BlockBuilder::AddOperation
    functionSourceFile: /src/raksha/src/ir/block_builder.h
    functionUses: 0
    functionsReached:
    - raksha::ir::BlockBuilder::IsBuilt
    - get
    - std::forward<Args>
    - std::unique_ptr::parent
    - raksha::analysis::taint::IfcTags::Create
    - std::move
    - CHECK
    - operations_::back
    - operations_::push_back
    linkageType: ''
    returnType: Operation
    signature: Operation & AddOperation(Args&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:111,1
    - Dst: IsBuilt
      Src: /src/raksha/src/ir/block_builder.h:111,1
    - Dst: builder
      Src: /src/raksha/src/ir/block_builder.h:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - builder
    argTypes:
    - std::function<void(BlockBuilder&, Block&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: "& AddImplementation(\n      std::function<void(BlockBuilder&, Block&)>
      builder)"
    functionSourceFile: /src/raksha/src/ir/block_builder.h
    functionUses: 0
    functionsReached:
    - IsBuilt
    - CHECK
    - builder
    linkageType: ''
    returnType: BlockBuilder
    signature: "BlockBuilder & AddImplementation(\n      std::function<void(BlockBuilder&,
      Block&)> builder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:124,1
    - Dst: std::move
      Src: /src/raksha/src/ir/block_builder.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: raksha::ir::BlockBuilder::build
    functionSourceFile: /src/raksha/src/ir/block_builder.h
    functionUses: 0
    functionsReached:
    - std::move
    - CHECK
    linkageType: ''
    returnType: std::unique_ptr<Block>
    signature: std::unique_ptr<Block> build()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:135,1
    - Dst: get
      Src: /src/raksha/src/ir/block_builder.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: raksha::ir::BlockBuilder::GetBlockPtr
    functionSourceFile: /src/raksha/src/ir/block_builder.h
    functionUses: 0
    functionsReached:
    - get
    - CHECK
    linkageType: ''
    returnType: Block
    signature: Block * GetBlockPtr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/raksha/src/ir/block_builder.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: raksha::ir::BlockBuilder::IsBuilt
    functionSourceFile: /src/raksha/src/ir/block_builder.h
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool IsBuilt() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/block_builder.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: raksha::ir::BlockBuilder::BlockBuilder
    functionSourceFile: /src/raksha/src/ir/block_builder.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Block>
    linkageType: ''
    returnType: void
    signature: void BlockBuilder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:34,1
    - Dst: IsBuilt
      Src: /src/raksha/src/ir/block_builder.h:34,1
    - Dst: inputs_::AddDecl
      Src: /src/raksha/src/ir/block_builder.h:36,1
    - Dst: std::move
      Src: /src/raksha/src/ir/block_builder.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - absl::string_view
    - types::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: '& AddInput(absl::string_view name, types::Type type)'
    functionSourceFile: /src/raksha/src/ir/block_builder.h
    functionUses: 0
    functionsReached:
    - inputs_::AddDecl
    - std::move
    - IsBuilt
    - CHECK
    linkageType: ''
    returnType: BlockBuilder
    signature: BlockBuilder & AddInput(absl::string_view name, types::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:41,1
    - Dst: IsBuilt
      Src: /src/raksha/src/ir/block_builder.h:41,1
    - Dst: outputs_::AddDecl
      Src: /src/raksha/src/ir/block_builder.h:43,1
    - Dst: std::move
      Src: /src/raksha/src/ir/block_builder.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - absl::string_view
    - types::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: '& AddOutput(absl::string_view name, types::Type type)'
    functionSourceFile: /src/raksha/src/ir/block_builder.h
    functionUses: 0
    functionsReached:
    - outputs_::AddDecl
    - std::move
    - IsBuilt
    - CHECK
    linkageType: ''
    returnType: BlockBuilder
    signature: BlockBuilder & AddOutput(absl::string_view name, types::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:48,1
    - Dst: IsBuilt
      Src: /src/raksha/src/ir/block_builder.h:48,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:50,1
    - Dst: outputs_::FindDecl
      Src: /src/raksha/src/ir/block_builder.h:50,1
    - Dst: results_::insert
      Src: /src/raksha/src/ir/block_builder.h:52,1
    - Dst: std::string
      Src: /src/raksha/src/ir/block_builder.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - name
    - output
    argTypes:
    - absl::string_view
    - Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: '& AddResult(absl::string_view name, Value output)'
    functionSourceFile: /src/raksha/src/ir/block_builder.h
    functionUses: 0
    functionsReached:
    - results_::insert
    - IsBuilt
    - CHECK
    - outputs_::FindDecl
    - std::string
    linkageType: ''
    returnType: BlockBuilder
    signature: BlockBuilder & AddResult(absl::string_view name, Value output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddOperation
      Src: /src/raksha/src/ir/block_builder.h:60,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder.h:60,1
    - Dst: std::move
      Src: /src/raksha/src/ir/block_builder.h:60,1
    - Dst: std::move
      Src: /src/raksha/src/ir/block_builder.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' op'
    - attributes
    - inputs
    argTypes:
    - Operator
    - NamedAttributeMap
    - ValueList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: "& AddOperation(const Operator& op,\n                                NamedAttributeMap
      attributes,\n                                ValueList inputs)"
    functionSourceFile: /src/raksha/src/ir/block_builder.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Operation>
    - AddOperation
    linkageType: ''
    returnType: Operation
    signature: "Operation & AddOperation(const Operator& op,\n                                NamedAttributeMap
      attributes,\n                                ValueList inputs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:67,1
    - Dst: IsBuilt
      Src: /src/raksha/src/ir/block_builder.h:67,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:69,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:70,1
    - Dst: std::unique_ptr<Operation>::parent
      Src: /src/raksha/src/ir/block_builder.h:70,1
    - Dst: std::unique_ptr<Operation>::set_parent
      Src: /src/raksha/src/ir/block_builder.h:73,1
    - Dst: get
      Src: /src/raksha/src/ir/block_builder.h:73,1
    - Dst: operations_::push_back
      Src: /src/raksha/src/ir/block_builder.h:74,1
    - Dst: std::move
      Src: /src/raksha/src/ir/block_builder.h:74,1
    - Dst: operations_::back
      Src: /src/raksha/src/ir/block_builder.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - std::unique_ptr<Operation>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 76
    functionName: '& AddOperation(std::unique_ptr<Operation> op)'
    functionSourceFile: /src/raksha/src/ir/block_builder.h
    functionUses: 0
    functionsReached:
    - get
    - std::unique_ptr<Operation>::parent
    - operations_::push_back
    - IsBuilt
    - std::move
    - CHECK
    - operations_::back
    - std::unique_ptr<Operation>::set_parent
    linkageType: ''
    returnType: Operation
    signature: Operation & AddOperation(std::unique_ptr<Operation> op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:87,1
    - Dst: raksha::ir::BlockBuilder::IsBuilt
      Src: /src/raksha/src/ir/block_builder.h:87,1
    - Dst: raksha::analysis::taint::IfcTags::Create
      Src: /src/raksha/src/ir/block_builder.h:90,1
    - Dst: get
      Src: /src/raksha/src/ir/block_builder.h:90,1
    - Dst: std::forward<Args>
      Src: /src/raksha/src/ir/block_builder.h:90,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:91,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:93,1
    - Dst: std::unique_ptr::parent
      Src: /src/raksha/src/ir/block_builder.h:93,1
    - Dst: get
      Src: /src/raksha/src/ir/block_builder.h:93,1
    - Dst: operations_::push_back
      Src: /src/raksha/src/ir/block_builder.h:95,1
    - Dst: std::move
      Src: /src/raksha/src/ir/block_builder.h:95,1
    - Dst: operations_::back
      Src: /src/raksha/src/ir/block_builder.h:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 97
    functionName: raksha::ir::BlockBuilder::AddOperation
    functionSourceFile: /src/raksha/src/ir/block_builder.h
    functionUses: 0
    functionsReached:
    - raksha::ir::BlockBuilder::IsBuilt
    - get
    - std::forward<Args>
    - std::unique_ptr::parent
    - raksha::analysis::taint::IfcTags::Create
    - std::move
    - CHECK
    - operations_::back
    - operations_::push_back
    linkageType: ''
    returnType: Operation
    signature: Operation & AddOperation(Args&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:111,1
    - Dst: IsBuilt
      Src: /src/raksha/src/ir/block_builder.h:111,1
    - Dst: builder
      Src: /src/raksha/src/ir/block_builder.h:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - builder
    argTypes:
    - std::function<void(BlockBuilder&, Block&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: "& AddImplementation(\n      std::function<void(BlockBuilder&, Block&)>
      builder)"
    functionSourceFile: /src/raksha/src/ir/block_builder.h
    functionUses: 0
    functionsReached:
    - IsBuilt
    - CHECK
    - builder
    linkageType: ''
    returnType: BlockBuilder
    signature: "BlockBuilder & AddImplementation(\n      std::function<void(BlockBuilder&,
      Block&)> builder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:124,1
    - Dst: std::move
      Src: /src/raksha/src/ir/block_builder.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: raksha::ir::BlockBuilder::build
    functionSourceFile: /src/raksha/src/ir/block_builder.h
    functionUses: 0
    functionsReached:
    - std::move
    - CHECK
    linkageType: ''
    returnType: std::unique_ptr<Block>
    signature: std::unique_ptr<Block> build()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/block_builder.h:135,1
    - Dst: get
      Src: /src/raksha/src/ir/block_builder.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: raksha::ir::BlockBuilder::GetBlockPtr
    functionSourceFile: /src/raksha/src/ir/block_builder.h
    functionUses: 0
    functionsReached:
    - get
    - CHECK
    linkageType: ''
    returnType: Block
    signature: Block * GetBlockPtr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/raksha/src/ir/block_builder.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: raksha::ir::BlockBuilder::IsBuilt
    functionSourceFile: /src/raksha/src/ir/block_builder.h
    functionUses: 2
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool IsBuilt() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/field_selector_test.cc:35,1
    - Dst: FieldSelector::ToString
      Src: /src/raksha/src/ir/field_selector_test.cc:37,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/field_selector_test.cc:38,1
    - Dst: std::string::at
      Src: /src/raksha/src/ir/field_selector_test.cc:38,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/field_selector_test.cc:39,1
    - Dst: std::string::substr
      Src: /src/raksha/src/ir/field_selector_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/field_selector_test.cc
    functionUses: 0
    functionsReached:
    - FieldSelector::ToString
    - std::string::substr
    - std::string::at
    - ASSERT_TRUE
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(FieldSelectorTest, ToStringJustDotPlusFieldName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/field_selector_test.cc:50,1
    - Dst: FieldSelector
      Src: /src/raksha/src/ir/field_selector_test.cc:50,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/field_selector_test.cc:52,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/raksha/src/ir/field_selector_test.cc:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/field_selector_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - std::vector::push_back
    - absl::VerifyTypeImplementsAbslHashCorrectly
    - FieldSelector
    linkageType: ''
    returnType: void
    signature: void TEST(FieldSelectorHashTest, FieldSelectorHashTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/raksha/src/ir/field_selector_test.cc:66,1
    - Dst: GetParam
      Src: /src/raksha/src/ir/field_selector_test.cc:66,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/field_selector_test.cc:67,1
    - Dst: FieldSelector
      Src: /src/raksha/src/ir/field_selector_test.cc:67,1
    - Dst: FieldSelector
      Src: /src/raksha/src/ir/field_selector_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/field_selector_test.cc
    functionUses: 0
    functionsReached:
    - FieldSelector
    - std::tie
    - ASSERT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(FieldSelectorPairTest, FieldSelectorEqualsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/field_selector_test.cc:35,1
    - Dst: FieldSelector::ToString
      Src: /src/raksha/src/ir/field_selector_test.cc:37,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/field_selector_test.cc:38,1
    - Dst: std::string::at
      Src: /src/raksha/src/ir/field_selector_test.cc:38,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/field_selector_test.cc:39,1
    - Dst: std::string::substr
      Src: /src/raksha/src/ir/field_selector_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/field_selector_test.cc
    functionUses: 0
    functionsReached:
    - FieldSelector::ToString
    - std::string::substr
    - std::string::at
    - ASSERT_TRUE
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(FieldSelectorTest, ToStringJustDotPlusFieldName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/field_selector_test.cc:50,1
    - Dst: FieldSelector
      Src: /src/raksha/src/ir/field_selector_test.cc:50,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/field_selector_test.cc:52,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/raksha/src/ir/field_selector_test.cc:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/field_selector_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - std::vector::push_back
    - absl::VerifyTypeImplementsAbslHashCorrectly
    - FieldSelector
    linkageType: ''
    returnType: void
    signature: void TEST(FieldSelectorHashTest, FieldSelectorHashTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/raksha/src/ir/field_selector_test.cc:66,1
    - Dst: GetParam
      Src: /src/raksha/src/ir/field_selector_test.cc:66,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/field_selector_test.cc:67,1
    - Dst: FieldSelector
      Src: /src/raksha/src/ir/field_selector_test.cc:67,1
    - Dst: FieldSelector
      Src: /src/raksha/src/ir/field_selector_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/field_selector_test.cc
    functionUses: 0
    functionsReached:
    - FieldSelector
    - std::tie
    - ASSERT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(FieldSelectorPairTest, FieldSelectorEqualsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/field_selector.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - field_name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: raksha::ir::FieldSelector::FieldSelector
    functionSourceFile: /src/raksha/src/ir/field_selector.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void FieldSelector(std::string field_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '&field_name() const'
    functionSourceFile: /src/raksha/src/ir/field_selector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &field_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/field_selector.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::ir::FieldSelector::ToString
    functionSourceFile: /src/raksha/src/ir/field_selector.h
    functionUses: 0
    functionsReached:
    - absl::StrCat
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - FieldSelector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: operator==(const FieldSelector &other) const
    functionSourceFile: /src/raksha/src/ir/field_selector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const FieldSelector &other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/field_selector.h:44,1
    - Dst: std::move
      Src: /src/raksha/src/ir/field_selector.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - field_selector
    argTypes:
    - H
    - FieldSelector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: raksha::ir::FieldSelector::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/field_selector.h
    functionUses: 0
    functionsReached:
    - H::combine
    - std::move
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const FieldSelector &field_selector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/field_selector.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - field_name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: raksha::ir::FieldSelector::FieldSelector
    functionSourceFile: /src/raksha/src/ir/field_selector.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void FieldSelector(std::string field_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '&field_name() const'
    functionSourceFile: /src/raksha/src/ir/field_selector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &field_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/field_selector.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::ir::FieldSelector::ToString
    functionSourceFile: /src/raksha/src/ir/field_selector.h
    functionUses: 0
    functionsReached:
    - absl::StrCat
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - FieldSelector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: operator==(const FieldSelector &other) const
    functionSourceFile: /src/raksha/src/ir/field_selector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const FieldSelector &other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/field_selector.h:44,1
    - Dst: std::move
      Src: /src/raksha/src/ir/field_selector.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - field_selector
    argTypes:
    - H
    - FieldSelector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: raksha::ir::FieldSelector::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/field_selector.h
    functionUses: 0
    functionsReached:
    - H::combine
    - std::move
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const FieldSelector &field_selector)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: raksha::ir::AccessPathSelectors::AccessPathSelectors
    functionSourceFile: /src/raksha/src/ir/access_path_selectors.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AccessPathSelectors()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/access_path_selectors.h:50,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - leaf
    argTypes:
    - Selector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: raksha::ir::AccessPathSelectors::AccessPathSelectors
    functionSourceFile: /src/raksha/src/ir/access_path_selectors.h
    functionUses: 0
    functionsReached:
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: void AccessPathSelectors(Selector leaf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors.h:54,1
    - Dst: push_back
      Src: /src/raksha/src/ir/access_path_selectors.h:55,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - parent_selector
    - child_path
    argTypes:
    - Selector
    - AccessPathSelectors
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: raksha::ir::AccessPathSelectors::AccessPathSelectors
    functionSourceFile: /src/raksha/src/ir/access_path_selectors.h
    functionUses: 0
    functionsReached:
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: void AccessPathSelectors(Selector parent_selector, AccessPathSelectors
      child_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - AccessPathSelectors
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: operator==(const AccessPathSelectors &other) const
    functionSourceFile: /src/raksha/src/ir/access_path_selectors.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const AccessPathSelectors &other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/access_path_selectors.h:70,1
    - Dst: rbegin
      Src: /src/raksha/src/ir/access_path_selectors.h:70,1
    - Dst: rend
      Src: /src/raksha/src/ir/access_path_selectors.h:70,1
    - Dst: append
      Src: /src/raksha/src/ir/access_path_selectors.h:72,1
    - Dst: raksha::ir::AccessPathSelectors::ToString
      Src: /src/raksha/src/ir/access_path_selectors.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: raksha::ir::AccessPathSelectors::ToString
    functionSourceFile: /src/raksha/src/ir/access_path_selectors.h
    functionUses: 1
    functionsReached:
    - rend
    - append
    - raksha::ir::AccessPathSelectors::ToString
    - rbegin
    - absl::StrJoin
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rbegin
      Src: /src/raksha/src/ir/access_path_selectors.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: raksha::ir::AccessPathSelectors::begin
    functionSourceFile: /src/raksha/src/ir/access_path_selectors.h
    functionUses: 0
    functionsReached:
    - rbegin
    linkageType: ''
    returnType: std::vector<Selector>::const_reverse_iterator
    signature: std::vector<Selector>::const_reverse_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rend
      Src: /src/raksha/src/ir/access_path_selectors.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: raksha::ir::AccessPathSelectors::end
    functionSourceFile: /src/raksha/src/ir/access_path_selectors.h
    functionUses: 0
    functionsReached:
    - rend
    linkageType: ''
    returnType: std::vector<Selector>::const_reverse_iterator
    signature: std::vector<Selector>::const_reverse_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/access_path_selectors.h:88,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - instance
    argTypes:
    - H
    - AccessPathSelectors
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: raksha::ir::AccessPathSelectors::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/access_path_selectors.h
    functionUses: 0
    functionsReached:
    - H::combine
    - std::move
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const AccessPathSelectors &instance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: raksha::ir::AccessPathSelectors::AccessPathSelectors
    functionSourceFile: /src/raksha/src/ir/access_path_selectors.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AccessPathSelectors()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/access_path_selectors.h:50,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - leaf
    argTypes:
    - Selector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: raksha::ir::AccessPathSelectors::AccessPathSelectors
    functionSourceFile: /src/raksha/src/ir/access_path_selectors.h
    functionUses: 0
    functionsReached:
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: void AccessPathSelectors(Selector leaf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors.h:54,1
    - Dst: push_back
      Src: /src/raksha/src/ir/access_path_selectors.h:55,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - parent_selector
    - child_path
    argTypes:
    - Selector
    - AccessPathSelectors
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: raksha::ir::AccessPathSelectors::AccessPathSelectors
    functionSourceFile: /src/raksha/src/ir/access_path_selectors.h
    functionUses: 0
    functionsReached:
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: void AccessPathSelectors(Selector parent_selector, AccessPathSelectors
      child_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - AccessPathSelectors
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: operator==(const AccessPathSelectors &other) const
    functionSourceFile: /src/raksha/src/ir/access_path_selectors.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const AccessPathSelectors &other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/access_path_selectors.h:70,1
    - Dst: rbegin
      Src: /src/raksha/src/ir/access_path_selectors.h:70,1
    - Dst: rend
      Src: /src/raksha/src/ir/access_path_selectors.h:70,1
    - Dst: append
      Src: /src/raksha/src/ir/access_path_selectors.h:72,1
    - Dst: raksha::ir::AccessPathSelectors::ToString
      Src: /src/raksha/src/ir/access_path_selectors.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: raksha::ir::AccessPathSelectors::ToString
    functionSourceFile: /src/raksha/src/ir/access_path_selectors.h
    functionUses: 2
    functionsReached:
    - rend
    - append
    - raksha::ir::AccessPathSelectors::ToString
    - rbegin
    - absl::StrJoin
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rbegin
      Src: /src/raksha/src/ir/access_path_selectors.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: raksha::ir::AccessPathSelectors::begin
    functionSourceFile: /src/raksha/src/ir/access_path_selectors.h
    functionUses: 0
    functionsReached:
    - rbegin
    linkageType: ''
    returnType: std::vector<Selector>::const_reverse_iterator
    signature: std::vector<Selector>::const_reverse_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rend
      Src: /src/raksha/src/ir/access_path_selectors.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: raksha::ir::AccessPathSelectors::end
    functionSourceFile: /src/raksha/src/ir/access_path_selectors.h
    functionUses: 0
    functionsReached:
    - rend
    linkageType: ''
    returnType: std::vector<Selector>::const_reverse_iterator
    signature: std::vector<Selector>::const_reverse_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/access_path_selectors.h:88,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - instance
    argTypes:
    - H
    - AccessPathSelectors
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: raksha::ir::AccessPathSelectors::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/access_path_selectors.h
    functionUses: 0
    functionsReached:
    - H::combine
    - std::move
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const AccessPathSelectors &instance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' element'
    - index
    argTypes:
    - T
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: raksha::ir::value::IndexedValue::IndexedValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IndexedValue(const T& element, uint64_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/value.h:51,1
    - Dst: std::move
      Src: /src/raksha/src/ir/value.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' v'
    argTypes:
    - H
    - IndexedValue<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: raksha::ir::value::IndexedValue::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - H::combine
    - std::move
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const IndexedValue<T>& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: '& element() const'
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & element() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: raksha::ir::value::IndexedValue::index
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - IndexedValue<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: operator==(const IndexedValue<T>& other) const
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const IndexedValue<T>& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: element
      Src: /src/raksha/src/ir/value.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: '& block() const'
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - element
    linkageType: ''
    returnType: Block
    signature: Block & block() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OperationResult
      Src: /src/raksha/src/ir/value.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: raksha::ir::value::OperationResult::MakeDefaultOperationResult
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 8
    functionsReached:
    - OperationResult
    linkageType: ''
    returnType: OperationResult
    signature: "OperationResult MakeDefaultOperationResult(\n      const Operation&
      operation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OperationResult
      Src: /src/raksha/src/ir/value.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' operation'
    - index
    argTypes:
    - Operation
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: raksha::ir::value::OperationResult::MakeOperationResult
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - OperationResult
    linkageType: ''
    returnType: OperationResult
    signature: "OperationResult MakeOperationResult(const Operation& operation,\n
      \                                            const uint64_t index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: element
      Src: /src/raksha/src/ir/value.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: '& operation() const'
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - element
    linkageType: ''
    returnType: Operation
    signature: Operation & operation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' storage'
    argTypes:
    - Storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: raksha::ir::value::StoredValue::StoredValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StoredValue(const Storage& storage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: raksha::ir::value::StoredValue::StoredValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StoredValue(const StoredValue&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: '& operator=(const StoredValue&)'
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StoredValue
    signature: StoredValue & operator=(const StoredValue&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/value.h:102,1
    - Dst: std::move
      Src: /src/raksha/src/ir/value.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' v'
    argTypes:
    - H
    - StoredValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: raksha::ir::value::StoredValue::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - H::combine
    - std::move
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const StoredValue& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: '& storage() const'
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Storage
    signature: Storage & storage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - StoredValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: operator==(const StoredValue& other) const
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const StoredValue& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: raksha::ir::value::Any::ToString
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/value.h:122,1
    - Dst: std::move
      Src: /src/raksha/src/ir/value.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' v'
    argTypes:
    - H
    - Any
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: raksha::ir::value::Any::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - H::combine
    - std::move
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const Any& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Any
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: operator==(const Any& other) const
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Any& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' element'
    - index
    argTypes:
    - T
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: raksha::ir::value::IndexedValue::IndexedValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IndexedValue(const T& element, uint64_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/value.h:51,1
    - Dst: std::move
      Src: /src/raksha/src/ir/value.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' v'
    argTypes:
    - H
    - IndexedValue<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: raksha::ir::value::IndexedValue::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - H::combine
    - std::move
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const IndexedValue<T>& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: '& element() const'
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & element() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: raksha::ir::value::IndexedValue::index
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - IndexedValue<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: operator==(const IndexedValue<T>& other) const
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const IndexedValue<T>& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: element
      Src: /src/raksha/src/ir/value.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: '& block() const'
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - element
    linkageType: ''
    returnType: Block
    signature: Block & block() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OperationResult
      Src: /src/raksha/src/ir/value.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: raksha::ir::value::OperationResult::MakeDefaultOperationResult
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 8
    functionsReached:
    - OperationResult
    linkageType: ''
    returnType: OperationResult
    signature: "OperationResult MakeDefaultOperationResult(\n      const Operation&
      operation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OperationResult
      Src: /src/raksha/src/ir/value.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' operation'
    - index
    argTypes:
    - Operation
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: raksha::ir::value::OperationResult::MakeOperationResult
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - OperationResult
    linkageType: ''
    returnType: OperationResult
    signature: "OperationResult MakeOperationResult(const Operation& operation,\n
      \                                            const uint64_t index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: element
      Src: /src/raksha/src/ir/value.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: '& operation() const'
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - element
    linkageType: ''
    returnType: Operation
    signature: Operation & operation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' storage'
    argTypes:
    - Storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: raksha::ir::value::StoredValue::StoredValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StoredValue(const Storage& storage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: raksha::ir::value::StoredValue::StoredValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StoredValue(const StoredValue&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: '& operator=(const StoredValue&)'
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StoredValue
    signature: StoredValue & operator=(const StoredValue&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/value.h:102,1
    - Dst: std::move
      Src: /src/raksha/src/ir/value.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' v'
    argTypes:
    - H
    - StoredValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: raksha::ir::value::StoredValue::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - H::combine
    - std::move
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const StoredValue& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: '& storage() const'
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Storage
    signature: Storage & storage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - StoredValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: operator==(const StoredValue& other) const
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const StoredValue& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: raksha::ir::value::Any::ToString
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/value.h:122,1
    - Dst: std::move
      Src: /src/raksha/src/ir/value.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' v'
    argTypes:
    - H
    - Any
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: raksha::ir::value::Any::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - H::combine
    - std::move
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const Any& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Any
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: operator==(const Any& other) const
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Any& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::Value::Value
      Src: /src/raksha/src/ir/value.h:142,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/value.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' op'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: raksha::ir::Value::MakeDefaultOperationResultValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 2
    functionsReached:
    - raksha::ir::Value::Value
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    linkageType: ''
    returnType: Value
    signature: Value MakeDefaultOperationResultValue(const Operation& op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::Value::Value
      Src: /src/raksha/src/ir/value.h:146,1
    - Dst: raksha::ir::value::OperationResult::MakeOperationResult
      Src: /src/raksha/src/ir/value.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' op'
    - index
    argTypes:
    - Operation
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: raksha::ir::Value::MakeOperationResultValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 4
    functionsReached:
    - raksha::ir::Value::Value
    - raksha::ir::value::OperationResult::MakeOperationResult
    linkageType: ''
    returnType: Value
    signature: "Value MakeOperationResultValue(const Operation& op,\n                                        const
      uint64_t index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/value.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - Variants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: raksha::ir::Value::Value
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 2
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Value(Variants value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/value.h:154,1
    - Dst: std::move
      Src: /src/raksha/src/ir/value.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' v'
    argTypes:
    - H
    - Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: raksha::ir::Value::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - H::combine
    - std::move
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const Value& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<T>
      Src: /src/raksha/src/ir/value.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: raksha::ir::Value::As
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - std::get<T>
    linkageType: ''
    returnType: T
    signature: T & As() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get_if<T>
      Src: /src/raksha/src/ir/value.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: raksha::ir::Value::If
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - std::get_if<T>
    linkageType: ''
    returnType: T
    signature: T * If() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: operator==(const Value& other) const
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Value& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' element'
    - index
    argTypes:
    - T
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: raksha::ir::value::IndexedValue::IndexedValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IndexedValue(const T& element, uint64_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/value.h:51,1
    - Dst: std::move
      Src: /src/raksha/src/ir/value.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' v'
    argTypes:
    - H
    - IndexedValue<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: raksha::ir::value::IndexedValue::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - H::combine
    - std::move
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const IndexedValue<T>& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: '& element() const'
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & element() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: raksha::ir::value::IndexedValue::index
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - IndexedValue<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: operator==(const IndexedValue<T>& other) const
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const IndexedValue<T>& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: element
      Src: /src/raksha/src/ir/value.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: '& block() const'
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - element
    linkageType: ''
    returnType: Block
    signature: Block & block() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OperationResult
      Src: /src/raksha/src/ir/value.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: raksha::ir::value::OperationResult::MakeDefaultOperationResult
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 9
    functionsReached:
    - OperationResult
    linkageType: ''
    returnType: OperationResult
    signature: "OperationResult MakeDefaultOperationResult(\n      const Operation&
      operation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OperationResult
      Src: /src/raksha/src/ir/value.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' operation'
    - index
    argTypes:
    - Operation
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: raksha::ir::value::OperationResult::MakeOperationResult
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 1
    functionsReached:
    - OperationResult
    linkageType: ''
    returnType: OperationResult
    signature: "OperationResult MakeOperationResult(const Operation& operation,\n
      \                                            const uint64_t index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: element
      Src: /src/raksha/src/ir/value.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: '& operation() const'
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - element
    linkageType: ''
    returnType: Operation
    signature: Operation & operation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' storage'
    argTypes:
    - Storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: raksha::ir::value::StoredValue::StoredValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StoredValue(const Storage& storage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: raksha::ir::value::StoredValue::StoredValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StoredValue(const StoredValue&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: '& operator=(const StoredValue&)'
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StoredValue
    signature: StoredValue & operator=(const StoredValue&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/value.h:102,1
    - Dst: std::move
      Src: /src/raksha/src/ir/value.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' v'
    argTypes:
    - H
    - StoredValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: raksha::ir::value::StoredValue::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - H::combine
    - std::move
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const StoredValue& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: '& storage() const'
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Storage
    signature: Storage & storage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - StoredValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: operator==(const StoredValue& other) const
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const StoredValue& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: raksha::ir::value::Any::ToString
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/value.h:122,1
    - Dst: std::move
      Src: /src/raksha/src/ir/value.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' v'
    argTypes:
    - H
    - Any
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: raksha::ir::value::Any::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - H::combine
    - std::move
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const Any& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Any
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: operator==(const Any& other) const
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Any& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' element'
    - index
    argTypes:
    - T
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: raksha::ir::value::IndexedValue::IndexedValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IndexedValue(const T& element, uint64_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/value.h:51,1
    - Dst: std::move
      Src: /src/raksha/src/ir/value.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' v'
    argTypes:
    - H
    - IndexedValue<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: raksha::ir::value::IndexedValue::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - H::combine
    - std::move
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const IndexedValue<T>& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: '& element() const'
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & element() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: raksha::ir::value::IndexedValue::index
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t index() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - IndexedValue<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: operator==(const IndexedValue<T>& other) const
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const IndexedValue<T>& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: element
      Src: /src/raksha/src/ir/value.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: '& block() const'
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - element
    linkageType: ''
    returnType: Block
    signature: Block & block() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OperationResult
      Src: /src/raksha/src/ir/value.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: raksha::ir::value::OperationResult::MakeDefaultOperationResult
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 9
    functionsReached:
    - OperationResult
    linkageType: ''
    returnType: OperationResult
    signature: "OperationResult MakeDefaultOperationResult(\n      const Operation&
      operation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OperationResult
      Src: /src/raksha/src/ir/value.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' operation'
    - index
    argTypes:
    - Operation
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: raksha::ir::value::OperationResult::MakeOperationResult
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 1
    functionsReached:
    - OperationResult
    linkageType: ''
    returnType: OperationResult
    signature: "OperationResult MakeOperationResult(const Operation& operation,\n
      \                                            const uint64_t index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: element
      Src: /src/raksha/src/ir/value.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: '& operation() const'
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - element
    linkageType: ''
    returnType: Operation
    signature: Operation & operation() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' storage'
    argTypes:
    - Storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: raksha::ir::value::StoredValue::StoredValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StoredValue(const Storage& storage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: raksha::ir::value::StoredValue::StoredValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StoredValue(const StoredValue&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: '& operator=(const StoredValue&)'
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StoredValue
    signature: StoredValue & operator=(const StoredValue&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/value.h:102,1
    - Dst: std::move
      Src: /src/raksha/src/ir/value.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' v'
    argTypes:
    - H
    - StoredValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: raksha::ir::value::StoredValue::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - H::combine
    - std::move
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const StoredValue& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: '& storage() const'
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Storage
    signature: Storage & storage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - StoredValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: operator==(const StoredValue& other) const
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const StoredValue& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: raksha::ir::value::Any::ToString
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/value.h:122,1
    - Dst: std::move
      Src: /src/raksha/src/ir/value.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' v'
    argTypes:
    - H
    - Any
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: raksha::ir::value::Any::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - H::combine
    - std::move
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const Any& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Any
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: operator==(const Any& other) const
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Any& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::Value::Value
      Src: /src/raksha/src/ir/value.h:142,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/value.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' op'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: raksha::ir::Value::MakeDefaultOperationResultValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 2
    functionsReached:
    - raksha::ir::Value::Value
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    linkageType: ''
    returnType: Value
    signature: Value MakeDefaultOperationResultValue(const Operation& op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::Value::Value
      Src: /src/raksha/src/ir/value.h:146,1
    - Dst: raksha::ir::value::OperationResult::MakeOperationResult
      Src: /src/raksha/src/ir/value.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' op'
    - index
    argTypes:
    - Operation
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: raksha::ir::Value::MakeOperationResultValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 4
    functionsReached:
    - raksha::ir::Value::Value
    - raksha::ir::value::OperationResult::MakeOperationResult
    linkageType: ''
    returnType: Value
    signature: "Value MakeOperationResultValue(const Operation& op,\n                                        const
      uint64_t index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/value.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - Variants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: raksha::ir::Value::Value
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 4
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Value(Variants value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/value.h:154,1
    - Dst: std::move
      Src: /src/raksha/src/ir/value.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' v'
    argTypes:
    - H
    - Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: raksha::ir::Value::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - H::combine
    - std::move
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const Value& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<T>
      Src: /src/raksha/src/ir/value.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: raksha::ir::Value::As
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - std::get<T>
    linkageType: ''
    returnType: T
    signature: T & As() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get_if<T>
      Src: /src/raksha/src/ir/value.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: raksha::ir::Value::If
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached:
    - std::get_if<T>
    linkageType: ''
    returnType: T
    signature: T * If() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: operator==(const Value& other) const
    functionSourceFile: /src/raksha/src/ir/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Value& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: raksha::ir::IRTraversingVisitor::Get
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - LOG
    linkageType: ''
    returnType: ValueType
    signature: ValueType Get()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ValueType
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: raksha::ir::IRTraversingVisitor::Get
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - ValueType
    linkageType: ''
    returnType: ValueType
    signature: ValueType Get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: ~IRTraversingVisitor()
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~IRTraversingVisitor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRTraversingVisitor::Get
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: raksha::ir::IRTraversingVisitor::GetDefaultValue
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - raksha::ir::IRTraversingVisitor::Get
    linkageType: ''
    returnType: Result
    signature: Result GetDefaultValue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - accumulator
    - child_result
    argTypes:
    - Result
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: raksha::ir::IRTraversingVisitor::FoldResult
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result FoldResult(Result accumulator, Result child_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: raksha::ir::IRTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - raksha::ir::IRTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(const Module& module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' module'
    - in_order_result
    argTypes:
    - Module
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: raksha::ir::IRTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result PostVisit(const Module& module, Result in_order_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: raksha::ir::IRTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - raksha::ir::IRTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(const Block& block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' block'
    - in_order_result
    argTypes:
    - Block
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: raksha::ir::IRTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result PostVisit(const Block& block, Result in_order_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: raksha::ir::IRTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - raksha::ir::IRTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(const Operation& operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' operation'
    - in_order_result
    argTypes:
    - Operation
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: raksha::ir::IRTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result PostVisit(const Operation& operation, Result in_order_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:88,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:89,1
    - Dst: blocks
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:90,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:90,1
    - Dst: raksha::ir::IRTraversingVisitor::FoldResult
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:92,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:92,1
    - Dst: Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:92,1
    - Dst: raksha::ir::IRTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:94,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: raksha::ir::IRTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - Accept
    - raksha::ir::IRTraversingVisitor::PostVisit
    - raksha::common::utils::fold
    - std::move
    - blocks
    - raksha::ir::IRTraversingVisitor::FoldResult
    - raksha::ir::IRTraversingVisitor::PreVisit
    linkageType: ''
    returnType: Result
    signature: Result Visit(const Module& module) final override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:98,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:99,1
    - Dst: operations
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:100,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:100,1
    - Dst: raksha::ir::IRTraversingVisitor::FoldResult
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:102,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:102,1
    - Dst: Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:102,1
    - Dst: raksha::ir::IRTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:104,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: raksha::ir::IRTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - Accept
    - raksha::ir::IRTraversingVisitor::PostVisit
    - operations
    - raksha::common::utils::fold
    - std::move
    - raksha::ir::IRTraversingVisitor::FoldResult
    - raksha::ir::IRTraversingVisitor::PreVisit
    linkageType: ''
    returnType: Result
    signature: Result Visit(const Block& block) final override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:108,1
    - Dst: raksha::ir::IRTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:109,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: raksha::ir::IRTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - raksha::ir::IRTraversingVisitor::PreVisit
    - std::move
    - raksha::ir::IRTraversingVisitor::PostVisit
    linkageType: ''
    returnType: Result
    signature: Result Visit(const Operation& operation) final override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: raksha::ir::IRTraversingVisitor::Get
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 1
    functionsReached:
    - LOG
    linkageType: ''
    returnType: ValueType
    signature: ValueType Get()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ValueType
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: raksha::ir::IRTraversingVisitor::Get
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 1
    functionsReached:
    - ValueType
    linkageType: ''
    returnType: ValueType
    signature: ValueType Get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: ~IRTraversingVisitor()
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~IRTraversingVisitor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRTraversingVisitor::Get
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: raksha::ir::IRTraversingVisitor::GetDefaultValue
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 3
    functionsReached:
    - raksha::ir::IRTraversingVisitor::Get
    linkageType: ''
    returnType: Result
    signature: Result GetDefaultValue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - accumulator
    - child_result
    argTypes:
    - Result
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: raksha::ir::IRTraversingVisitor::FoldResult
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result FoldResult(Result accumulator, Result child_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: raksha::ir::IRTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 3
    functionsReached:
    - raksha::ir::IRTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(const Module& module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' module'
    - in_order_result
    argTypes:
    - Module
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: raksha::ir::IRTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result PostVisit(const Module& module, Result in_order_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: raksha::ir::IRTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 3
    functionsReached:
    - raksha::ir::IRTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(const Block& block)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' block'
    - in_order_result
    argTypes:
    - Block
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: raksha::ir::IRTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result PostVisit(const Block& block, Result in_order_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: raksha::ir::IRTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 3
    functionsReached:
    - raksha::ir::IRTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(const Operation& operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' operation'
    - in_order_result
    argTypes:
    - Operation
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: raksha::ir::IRTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result PostVisit(const Operation& operation, Result in_order_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:88,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:89,1
    - Dst: blocks
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:90,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:90,1
    - Dst: raksha::ir::IRTraversingVisitor::FoldResult
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:92,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:92,1
    - Dst: Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:92,1
    - Dst: raksha::ir::IRTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:94,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: raksha::ir::IRTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - Accept
    - raksha::ir::IRTraversingVisitor::PostVisit
    - raksha::common::utils::fold
    - std::move
    - blocks
    - raksha::ir::IRTraversingVisitor::FoldResult
    - raksha::ir::IRTraversingVisitor::PreVisit
    linkageType: ''
    returnType: Result
    signature: Result Visit(const Module& module) final override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:98,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:99,1
    - Dst: operations
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:100,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:100,1
    - Dst: raksha::ir::IRTraversingVisitor::FoldResult
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:102,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:102,1
    - Dst: Accept
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:102,1
    - Dst: raksha::ir::IRTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:104,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: raksha::ir::IRTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - Accept
    - raksha::ir::IRTraversingVisitor::PostVisit
    - operations
    - raksha::common::utils::fold
    - std::move
    - raksha::ir::IRTraversingVisitor::FoldResult
    - raksha::ir::IRTraversingVisitor::PreVisit
    linkageType: ''
    returnType: Result
    signature: Result Visit(const Block& block) final override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:108,1
    - Dst: raksha::ir::IRTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:109,1
    - Dst: std::move
      Src: /src/raksha/src/ir/ir_traversing_visitor.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: raksha::ir::IRTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/ir_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - raksha::ir::IRTraversingVisitor::PreVisit
    - std::move
    - raksha::ir::IRTraversingVisitor::PostVisit
    linkageType: ''
    returnType: Result
    signature: Result Visit(const Operation& operation) final override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/value_test.cc:42,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/value_test.cc:43,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:55,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:56,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:57,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:57,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:58,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:58,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:59,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:59,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:60,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:60,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:61,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:61,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:62,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:62,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:63,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:63,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:64,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:64,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:65,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:65,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:66,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:66,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:67,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:67,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/value_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 68
    functionName: raksha::ir::TestData
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - GetOrCreateID
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - Value
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TestData()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:95,1
    - Dst: plus_operation_result1::operation
      Src: /src/raksha/src/ir/value_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:97,1
    - Dst: plus_operation_result1::index
      Src: /src/raksha/src/ir/value_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:99,1
    - Dst: plus_operation_result2::operation
      Src: /src/raksha/src/ir/value_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:101,1
    - Dst: plus_operation_result2::index
      Src: /src/raksha/src/ir/value_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:103,1
    - Dst: minus_operation_result1::operation
      Src: /src/raksha/src/ir/value_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:105,1
    - Dst: minus_operation_result1::index
      Src: /src/raksha/src/ir/value_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:107,1
    - Dst: minus_operation_result2::operation
      Src: /src/raksha/src/ir/value_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:109,1
    - Dst: minus_operation_result2::index
      Src: /src/raksha/src/ir/value_test.cc:109,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:111,1
    - Dst: first_block_first_arg::block
      Src: /src/raksha/src/ir/value_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:112,1
    - Dst: first_block_first_arg::index
      Src: /src/raksha/src/ir/value_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:114,1
    - Dst: first_block_second_arg::block
      Src: /src/raksha/src/ir/value_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:115,1
    - Dst: first_block_second_arg::index
      Src: /src/raksha/src/ir/value_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:117,1
    - Dst: second_block_first_arg::block
      Src: /src/raksha/src/ir/value_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:118,1
    - Dst: second_block_first_arg::index
      Src: /src/raksha/src/ir/value_test.cc:118,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:120,1
    - Dst: second_block_second_arg::block
      Src: /src/raksha/src/ir/value_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:122,1
    - Dst: second_block_second_arg::index
      Src: /src/raksha/src/ir/value_test.cc:122,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:124,1
    - Dst: input_stored_value::storage
      Src: /src/raksha/src/ir/value_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:125,1
    - Dst: output_stored_value::storage
      Src: /src/raksha/src/ir/value_test.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 127
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - first_block_first_arg::index
    - plus_operation_result2::index
    - second_block_second_arg::index
    - output_stored_value::storage
    - minus_operation_result2::index
    - minus_operation_result2::operation
    - EXPECT_EQ
    - second_block_first_arg::index
    - plus_operation_result1::index
    - minus_operation_result1::operation
    - first_block_first_arg::block
    - plus_operation_result1::operation
    - plus_operation_result2::operation
    - minus_operation_result1::index
    - second_block_first_arg::block
    - second_block_second_arg::block
    - first_block_second_arg::index
    - first_block_second_arg::block
    - input_stored_value::storage
    linkageType: ''
    returnType: void
    signature: void TEST(ValueTest, AccessorsReturnCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/value_test.cc:132,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/value_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:135,1
    - Dst: value::OperationResult::operation
      Src: /src/raksha/src/ir/value_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:136,1
    - Dst: value::OperationResult::index
      Src: /src/raksha/src/ir/value_test.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - value::OperationResult::operation
    - value::OperationResult::index
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperationResultTest, DefaultOperationResultTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/value_test.cc:140,1
    - Dst: raksha::ir::Value::MakeDefaultOperationResultValue
      Src: /src/raksha/src/ir/value_test.cc:142,1
    - Dst: Value::If
      Src: /src/raksha/src/ir/value_test.cc:144,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/value_test.cc:145,1
    - Dst: NotNull
      Src: /src/raksha/src/ir/value_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:146,1
    - Dst: value::OperationResult*::operation
      Src: /src/raksha/src/ir/value_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:147,1
    - Dst: value::OperationResult*::index
      Src: /src/raksha/src/ir/value_test.cc:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - value::OperationResult*::operation
    - value::OperationResult*::index
    - NotNull
    - raksha::ir::Value::MakeDefaultOperationResultValue
    - EXPECT_THAT
    - Value::If
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperationResultTest, DefaultOperationResultValueTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/value_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:159,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/ir/value_test.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    - raksha::ir::ValueToString
    linkageType: ''
    returnType: void
    signature: void TEST_P(ValueToStringTest, ToStringReturnsExpectedFormat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/value_test.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(ValueEqTest, ValueEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/value_test.cc:212,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/value_test.cc:214,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/raksha/src/ir/value_test.cc:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - std::vector::push_back
    - absl::VerifyTypeImplementsAbslHashCorrectly
    linkageType: ''
    returnType: void
    signature: void TEST(ValueHashTest, ValueHashTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/value_test.cc:42,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/value_test.cc:43,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:55,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:56,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:57,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:57,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:58,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:58,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:59,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:59,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:60,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:60,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:61,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:61,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:62,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:62,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:63,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:63,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:64,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:64,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:65,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:65,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:66,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:66,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:67,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:67,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/value_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 68
    functionName: raksha::ir::TestData
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - GetOrCreateID
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - Value
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TestData()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:95,1
    - Dst: plus_operation_result1::operation
      Src: /src/raksha/src/ir/value_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:97,1
    - Dst: plus_operation_result1::index
      Src: /src/raksha/src/ir/value_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:99,1
    - Dst: plus_operation_result2::operation
      Src: /src/raksha/src/ir/value_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:101,1
    - Dst: plus_operation_result2::index
      Src: /src/raksha/src/ir/value_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:103,1
    - Dst: minus_operation_result1::operation
      Src: /src/raksha/src/ir/value_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:105,1
    - Dst: minus_operation_result1::index
      Src: /src/raksha/src/ir/value_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:107,1
    - Dst: minus_operation_result2::operation
      Src: /src/raksha/src/ir/value_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:109,1
    - Dst: minus_operation_result2::index
      Src: /src/raksha/src/ir/value_test.cc:109,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:111,1
    - Dst: first_block_first_arg::block
      Src: /src/raksha/src/ir/value_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:112,1
    - Dst: first_block_first_arg::index
      Src: /src/raksha/src/ir/value_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:114,1
    - Dst: first_block_second_arg::block
      Src: /src/raksha/src/ir/value_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:115,1
    - Dst: first_block_second_arg::index
      Src: /src/raksha/src/ir/value_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:117,1
    - Dst: second_block_first_arg::block
      Src: /src/raksha/src/ir/value_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:118,1
    - Dst: second_block_first_arg::index
      Src: /src/raksha/src/ir/value_test.cc:118,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:120,1
    - Dst: second_block_second_arg::block
      Src: /src/raksha/src/ir/value_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:122,1
    - Dst: second_block_second_arg::index
      Src: /src/raksha/src/ir/value_test.cc:122,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:124,1
    - Dst: input_stored_value::storage
      Src: /src/raksha/src/ir/value_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:125,1
    - Dst: output_stored_value::storage
      Src: /src/raksha/src/ir/value_test.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 127
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - first_block_first_arg::index
    - plus_operation_result2::index
    - second_block_second_arg::index
    - output_stored_value::storage
    - minus_operation_result2::index
    - minus_operation_result2::operation
    - EXPECT_EQ
    - second_block_first_arg::index
    - plus_operation_result1::index
    - minus_operation_result1::operation
    - first_block_first_arg::block
    - plus_operation_result1::operation
    - plus_operation_result2::operation
    - minus_operation_result1::index
    - second_block_first_arg::block
    - second_block_second_arg::block
    - first_block_second_arg::index
    - first_block_second_arg::block
    - input_stored_value::storage
    linkageType: ''
    returnType: void
    signature: void TEST(ValueTest, AccessorsReturnCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/value_test.cc:132,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/value_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:135,1
    - Dst: value::OperationResult::operation
      Src: /src/raksha/src/ir/value_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:136,1
    - Dst: value::OperationResult::index
      Src: /src/raksha/src/ir/value_test.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - value::OperationResult::operation
    - value::OperationResult::index
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperationResultTest, DefaultOperationResultTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/value_test.cc:140,1
    - Dst: raksha::ir::Value::MakeDefaultOperationResultValue
      Src: /src/raksha/src/ir/value_test.cc:142,1
    - Dst: Value::If
      Src: /src/raksha/src/ir/value_test.cc:144,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/value_test.cc:145,1
    - Dst: NotNull
      Src: /src/raksha/src/ir/value_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:146,1
    - Dst: value::OperationResult*::operation
      Src: /src/raksha/src/ir/value_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:147,1
    - Dst: value::OperationResult*::index
      Src: /src/raksha/src/ir/value_test.cc:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - value::OperationResult*::operation
    - value::OperationResult*::index
    - NotNull
    - raksha::ir::Value::MakeDefaultOperationResultValue
    - EXPECT_THAT
    - Value::If
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperationResultTest, DefaultOperationResultValueTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/value_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:159,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/ir/value_test.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    - raksha::ir::ValueToString
    linkageType: ''
    returnType: void
    signature: void TEST_P(ValueToStringTest, ToStringReturnsExpectedFormat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/value_test.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(ValueEqTest, ValueEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/value_test.cc:212,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/value_test.cc:214,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/raksha/src/ir/value_test.cc:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - std::vector::push_back
    - absl::VerifyTypeImplementsAbslHashCorrectly
    linkageType: ''
    returnType: void
    signature: void TEST(ValueHashTest, ValueHashTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/value_test.cc:42,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/value_test.cc:43,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:55,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:56,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:57,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:57,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:58,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:58,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:59,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:59,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:60,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:60,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:61,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:61,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:62,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:62,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:63,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:63,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:64,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:64,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:65,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:65,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:66,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:66,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:67,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:67,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/value_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 68
    functionName: raksha::ir::TestData
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - GetOrCreateID
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - Value
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TestData()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:95,1
    - Dst: plus_operation_result1::operation
      Src: /src/raksha/src/ir/value_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:97,1
    - Dst: plus_operation_result1::index
      Src: /src/raksha/src/ir/value_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:99,1
    - Dst: plus_operation_result2::operation
      Src: /src/raksha/src/ir/value_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:101,1
    - Dst: plus_operation_result2::index
      Src: /src/raksha/src/ir/value_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:103,1
    - Dst: minus_operation_result1::operation
      Src: /src/raksha/src/ir/value_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:105,1
    - Dst: minus_operation_result1::index
      Src: /src/raksha/src/ir/value_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:107,1
    - Dst: minus_operation_result2::operation
      Src: /src/raksha/src/ir/value_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:109,1
    - Dst: minus_operation_result2::index
      Src: /src/raksha/src/ir/value_test.cc:109,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:111,1
    - Dst: first_block_first_arg::block
      Src: /src/raksha/src/ir/value_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:112,1
    - Dst: first_block_first_arg::index
      Src: /src/raksha/src/ir/value_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:114,1
    - Dst: first_block_second_arg::block
      Src: /src/raksha/src/ir/value_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:115,1
    - Dst: first_block_second_arg::index
      Src: /src/raksha/src/ir/value_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:117,1
    - Dst: second_block_first_arg::block
      Src: /src/raksha/src/ir/value_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:118,1
    - Dst: second_block_first_arg::index
      Src: /src/raksha/src/ir/value_test.cc:118,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:120,1
    - Dst: second_block_second_arg::block
      Src: /src/raksha/src/ir/value_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:122,1
    - Dst: second_block_second_arg::index
      Src: /src/raksha/src/ir/value_test.cc:122,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:124,1
    - Dst: input_stored_value::storage
      Src: /src/raksha/src/ir/value_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:125,1
    - Dst: output_stored_value::storage
      Src: /src/raksha/src/ir/value_test.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 127
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - first_block_first_arg::index
    - plus_operation_result2::index
    - second_block_second_arg::index
    - output_stored_value::storage
    - minus_operation_result2::index
    - minus_operation_result2::operation
    - EXPECT_EQ
    - second_block_first_arg::index
    - plus_operation_result1::index
    - minus_operation_result1::operation
    - first_block_first_arg::block
    - plus_operation_result1::operation
    - plus_operation_result2::operation
    - minus_operation_result1::index
    - second_block_first_arg::block
    - second_block_second_arg::block
    - first_block_second_arg::index
    - first_block_second_arg::block
    - input_stored_value::storage
    linkageType: ''
    returnType: void
    signature: void TEST(ValueTest, AccessorsReturnCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/value_test.cc:132,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/value_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:135,1
    - Dst: value::OperationResult::operation
      Src: /src/raksha/src/ir/value_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:136,1
    - Dst: value::OperationResult::index
      Src: /src/raksha/src/ir/value_test.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - value::OperationResult::operation
    - value::OperationResult::index
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperationResultTest, DefaultOperationResultTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/value_test.cc:140,1
    - Dst: raksha::ir::Value::MakeDefaultOperationResultValue
      Src: /src/raksha/src/ir/value_test.cc:142,1
    - Dst: Value::If
      Src: /src/raksha/src/ir/value_test.cc:144,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/value_test.cc:145,1
    - Dst: NotNull
      Src: /src/raksha/src/ir/value_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:146,1
    - Dst: value::OperationResult*::operation
      Src: /src/raksha/src/ir/value_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:147,1
    - Dst: value::OperationResult*::index
      Src: /src/raksha/src/ir/value_test.cc:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - value::OperationResult*::operation
    - value::OperationResult*::index
    - NotNull
    - raksha::ir::Value::MakeDefaultOperationResultValue
    - EXPECT_THAT
    - Value::If
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperationResultTest, DefaultOperationResultValueTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/value_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:159,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/ir/value_test.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    - raksha::ir::ValueToString
    linkageType: ''
    returnType: void
    signature: void TEST_P(ValueToStringTest, ToStringReturnsExpectedFormat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/value_test.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(ValueEqTest, ValueEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/value_test.cc:212,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/value_test.cc:214,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/raksha/src/ir/value_test.cc:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - std::vector::push_back
    - absl::VerifyTypeImplementsAbslHashCorrectly
    linkageType: ''
    returnType: void
    signature: void TEST(ValueHashTest, ValueHashTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/value_test.cc:42,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/value_test.cc:43,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:55,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:56,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:57,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:57,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:58,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:58,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:59,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:59,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:60,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:60,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:61,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:61,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:62,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:62,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:63,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:63,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:64,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:64,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:65,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:65,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:66,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:66,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_test.cc:67,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_test.cc:67,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/value_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 68
    functionName: raksha::ir::TestData
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - GetOrCreateID
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - Value
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TestData()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:95,1
    - Dst: plus_operation_result1::operation
      Src: /src/raksha/src/ir/value_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:97,1
    - Dst: plus_operation_result1::index
      Src: /src/raksha/src/ir/value_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:99,1
    - Dst: plus_operation_result2::operation
      Src: /src/raksha/src/ir/value_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:101,1
    - Dst: plus_operation_result2::index
      Src: /src/raksha/src/ir/value_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:103,1
    - Dst: minus_operation_result1::operation
      Src: /src/raksha/src/ir/value_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:105,1
    - Dst: minus_operation_result1::index
      Src: /src/raksha/src/ir/value_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:107,1
    - Dst: minus_operation_result2::operation
      Src: /src/raksha/src/ir/value_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:109,1
    - Dst: minus_operation_result2::index
      Src: /src/raksha/src/ir/value_test.cc:109,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:111,1
    - Dst: first_block_first_arg::block
      Src: /src/raksha/src/ir/value_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:112,1
    - Dst: first_block_first_arg::index
      Src: /src/raksha/src/ir/value_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:114,1
    - Dst: first_block_second_arg::block
      Src: /src/raksha/src/ir/value_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:115,1
    - Dst: first_block_second_arg::index
      Src: /src/raksha/src/ir/value_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:117,1
    - Dst: second_block_first_arg::block
      Src: /src/raksha/src/ir/value_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:118,1
    - Dst: second_block_first_arg::index
      Src: /src/raksha/src/ir/value_test.cc:118,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:120,1
    - Dst: second_block_second_arg::block
      Src: /src/raksha/src/ir/value_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:122,1
    - Dst: second_block_second_arg::index
      Src: /src/raksha/src/ir/value_test.cc:122,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:124,1
    - Dst: input_stored_value::storage
      Src: /src/raksha/src/ir/value_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:125,1
    - Dst: output_stored_value::storage
      Src: /src/raksha/src/ir/value_test.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 127
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - first_block_first_arg::index
    - plus_operation_result2::index
    - second_block_second_arg::index
    - output_stored_value::storage
    - minus_operation_result2::index
    - minus_operation_result2::operation
    - EXPECT_EQ
    - second_block_first_arg::index
    - plus_operation_result1::index
    - minus_operation_result1::operation
    - first_block_first_arg::block
    - plus_operation_result1::operation
    - plus_operation_result2::operation
    - minus_operation_result1::index
    - second_block_first_arg::block
    - second_block_second_arg::block
    - first_block_second_arg::index
    - first_block_second_arg::block
    - input_stored_value::storage
    linkageType: ''
    returnType: void
    signature: void TEST(ValueTest, AccessorsReturnCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/value_test.cc:132,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/value_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:135,1
    - Dst: value::OperationResult::operation
      Src: /src/raksha/src/ir/value_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:136,1
    - Dst: value::OperationResult::index
      Src: /src/raksha/src/ir/value_test.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - value::OperationResult::operation
    - value::OperationResult::index
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperationResultTest, DefaultOperationResultTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/value_test.cc:140,1
    - Dst: raksha::ir::Value::MakeDefaultOperationResultValue
      Src: /src/raksha/src/ir/value_test.cc:142,1
    - Dst: Value::If
      Src: /src/raksha/src/ir/value_test.cc:144,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/value_test.cc:145,1
    - Dst: NotNull
      Src: /src/raksha/src/ir/value_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:146,1
    - Dst: value::OperationResult*::operation
      Src: /src/raksha/src/ir/value_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:147,1
    - Dst: value::OperationResult*::index
      Src: /src/raksha/src/ir/value_test.cc:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - value::OperationResult*::operation
    - value::OperationResult*::index
    - NotNull
    - raksha::ir::Value::MakeDefaultOperationResultValue
    - EXPECT_THAT
    - Value::If
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperationResultTest, DefaultOperationResultValueTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/value_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:159,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/ir/value_test.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    - raksha::ir::ValueToString
    linkageType: ''
    returnType: void
    signature: void TEST_P(ValueToStringTest, ToStringReturnsExpectedFormat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/value_test.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/value_test.cc:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(ValueEqTest, ValueEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/value_test.cc:212,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/value_test.cc:214,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/raksha/src/ir/value_test.cc:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/value_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - std::vector::push_back
    - absl::VerifyTypeImplementsAbslHashCorrectly
    linkageType: ''
    returnType: void
    signature: void TEST(ValueHashTest, ValueHashTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Module>
      Src: /src/raksha/src/ir/proto_to_ir.cc:30,1
    - Dst: blocks
      Src: /src/raksha/src/ir/proto_to_ir.cc:31,1
    - Dst: insert
      Src: /src/raksha/src/ir/proto_to_ir.cc:32,1
    - Dst: id
      Src: /src/raksha/src/ir/proto_to_ir.cc:32,1
    - Dst: BlockBuilder
      Src: /src/raksha/src/ir/proto_to_ir.cc:32,1
    - Dst: raksha::ir::ProtoToIR::PreVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:33,1
    - Dst: block
      Src: /src/raksha/src/ir/proto_to_ir.cc:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' module_proto'
    argTypes:
    - proto::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: raksha::ir::ProtoToIR::PreVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 1
    functionsReached:
    - raksha::ir::ProtoToIR::PreVisit
    - std::make_unique<Module>
    - block
    - id
    - BlockBuilder
    - blocks
    - insert
    linkageType: ''
    returnType: std::unique_ptr<Module>
    signature: std::unique_ptr<Module> ProtoToIR::PreVisit(const proto::Module& module_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: operations
      Src: /src/raksha/src/ir/proto_to_ir.cc:39,1
    - Dst: operation
      Src: /src/raksha/src/ir/proto_to_ir.cc:40,1
    - Dst: operator_name
      Src: /src/raksha/src/ir/proto_to_ir.cc:41,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/proto_to_ir.cc:42,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:43,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/proto_to_ir.cc:46,1
    - Dst: Value
      Src: /src/raksha/src/ir/proto_to_ir.cc:51,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/proto_to_ir.cc:52,1
    - Dst: insert
      Src: /src/raksha/src/ir/proto_to_ir.cc:53,1
    - Dst: id
      Src: /src/raksha/src/ir/proto_to_ir.cc:53,1
    - Dst: std::move
      Src: /src/raksha/src/ir/proto_to_ir.cc:53,1
    - Dst: raksha::ir::ProtoToIR::PreVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:54,1
    - Dst: results
      Src: /src/raksha/src/ir/proto_to_ir.cc:56,1
    - Dst: raksha::ir::ProtoToIR::PreVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' block_proto'
    argTypes:
    - proto::Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 59
    functionName: raksha::ir::ProtoToIR::PreVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 2
    functionsReached:
    - GetOrCreateID
    - Value
    - raksha::ir::ProtoToIR::PreVisit
    - operation
    - operations
    - operator_name
    - results
    - GetOperator
    - id
    - std::move
    - CHECK
    - std::make_unique<Operation>
    - insert
    linkageType: ''
    returnType: void
    signature: void ProtoToIR::PreVisit(const proto::Block& block_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inputs
      Src: /src/raksha/src/ir/proto_to_ir.cc:62,1
    - Dst: raksha::ir::ProtoToIR::PreVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:63,1
    - Dst: attributes
      Src: /src/raksha/src/ir/proto_to_ir.cc:65,1
    - Dst: raksha::ir::ProtoToIR::PreVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' operation_proto'
    argTypes:
    - proto::Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: raksha::ir::ProtoToIR::PreVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 3
    functionsReached:
    - raksha::ir::ProtoToIR::PreVisit
    - inputs
    - attributes
    linkageType: ''
    returnType: void
    signature: void ProtoToIR::PreVisit(const proto::Operation& operation_proto)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_any_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:72,1
    - Dst: raksha::ir::ProtoToIR::PreVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:73,1
    - Dst: any_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:73,1
    - Dst: has_operation_result_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:74,1
    - Dst: raksha::ir::ProtoToIR::PreVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:75,1
    - Dst: operation_result_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:75,1
    - Dst: has_block_argument_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:76,1
    - Dst: raksha::ir::ProtoToIR::PreVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:77,1
    - Dst: block_argument_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:77,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' value_proto'
    argTypes:
    - proto::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: raksha::ir::ProtoToIR::PreVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 4
    functionsReached:
    - has_operation_result_value
    - raksha::ir::ProtoToIR::PreVisit
    - block_argument_value
    - has_any_value
    - any_value
    - CHECK
    - has_block_argument_value
    - operation_result_value
    linkageType: ''
    returnType: void
    signature: void ProtoToIR::PreVisit(const proto::Value& value_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: raksha::ir::ProtoToIR::PreVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ProtoToIR::PreVisit(const proto::AnyValue&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' block_argument_proto'
    argTypes:
    - proto::BlockArgumentValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: raksha::ir::ProtoToIR::PreVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ProtoToIR::PreVisit(\n    const proto::BlockArgumentValue& block_argument_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' operation_argument_proto'
    argTypes:
    - proto::OperationResultValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: raksha::ir::ProtoToIR::PreVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ProtoToIR::PreVisit(\n    const proto::OperationResultValue&
      operation_argument_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' attribute_payload'
    argTypes:
    - proto::AttributePayload
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: raksha::ir::ProtoToIR::PreVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ProtoToIR::PreVisit(const proto::AttributePayload& attribute_payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blocks
      Src: /src/raksha/src/ir/proto_to_ir.cc:102,1
    - Dst: find
      Src: /src/raksha/src/ir/proto_to_ir.cc:103,1
    - Dst: id
      Src: /src/raksha/src/ir/proto_to_ir.cc:103,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:104,1
    - Dst: end
      Src: /src/raksha/src/ir/proto_to_ir.cc:104,1
    - Dst: raksha::ir::ProtoToIR::PostVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:107,1
    - Dst: block
      Src: /src/raksha/src/ir/proto_to_ir.cc:107,1
    - Dst: AddBlock
      Src: /src/raksha/src/ir/proto_to_ir.cc:108,1
    - Dst: build
      Src: /src/raksha/src/ir/proto_to_ir.cc:108,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/proto_to_ir.cc:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' module'
    - ' module_proto'
    argTypes:
    - Module
    - proto::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: raksha::ir::ProtoToIR::PostVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 1
    functionsReached:
    - GetOrCreateID
    - AddBlock
    - find
    - build
    - raksha::ir::ProtoToIR::PostVisit
    - block
    - id
    - blocks
    - end
    - CHECK
    linkageType: ''
    returnType: void
    signature: void ProtoToIR::PostVisit(Module& module, const proto::Module& module_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: operations
      Src: /src/raksha/src/ir/proto_to_ir.cc:116,1
    - Dst: find
      Src: /src/raksha/src/ir/proto_to_ir.cc:117,1
    - Dst: id
      Src: /src/raksha/src/ir/proto_to_ir.cc:117,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:118,1
    - Dst: end
      Src: /src/raksha/src/ir/proto_to_ir.cc:118,1
    - Dst: std::move
      Src: /src/raksha/src/ir/proto_to_ir.cc:120,1
    - Dst: raksha::ir::ProtoToIR::PostVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:121,1
    - Dst: operation
      Src: /src/raksha/src/ir/proto_to_ir.cc:121,1
    - Dst: AddOperation
      Src: /src/raksha/src/ir/proto_to_ir.cc:122,1
    - Dst: std::move
      Src: /src/raksha/src/ir/proto_to_ir.cc:122,1
    - Dst: results
      Src: /src/raksha/src/ir/proto_to_ir.cc:124,1
    - Dst: raksha::ir::ProtoToIR::PostVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:125,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/proto_to_ir.cc:128,1
    - Dst: GetBlockPtr
      Src: /src/raksha/src/ir/proto_to_ir.cc:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' block'
    - ' block_proto'
    argTypes:
    - BlockBuilder
    - proto::Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 129
    functionName: raksha::ir::ProtoToIR::PostVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 2
    functionsReached:
    - GetOrCreateID
    - find
    - AddOperation
    - operations
    - raksha::ir::ProtoToIR::PostVisit
    - operation
    - results
    - id
    - std::move
    - GetBlockPtr
    - CHECK
    - end
    linkageType: ''
    returnType: void
    signature: "void ProtoToIR::PostVisit(BlockBuilder& block,\n                          const
      proto::Block& block_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inputs
      Src: /src/raksha/src/ir/proto_to_ir.cc:133,1
    - Dst: raksha::ir::ProtoToIR::PostVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:134,1
    - Dst: attributes
      Src: /src/raksha/src/ir/proto_to_ir.cc:136,1
    - Dst: raksha::ir::ProtoToIR::PostVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' op'
    - ' operation_proto'
    argTypes:
    - Operation
    - proto::Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 140
    functionName: raksha::ir::ProtoToIR::PostVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 3
    functionsReached:
    - raksha::ir::ProtoToIR::PostVisit
    - inputs
    - attributes
    linkageType: ''
    returnType: void
    signature: "void ProtoToIR::PostVisit(Operation& op,\n                          const
      proto::Operation& operation_proto)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_any_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:143,1
    - Dst: raksha::ir::ProtoToIR::PostVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:144,1
    - Dst: any_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:144,1
    - Dst: has_operation_result_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:145,1
    - Dst: raksha::ir::ProtoToIR::PostVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:146,1
    - Dst: operation_result_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:146,1
    - Dst: has_block_argument_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:147,1
    - Dst: raksha::ir::ProtoToIR::PostVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:148,1
    - Dst: block_argument_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:148,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' value_proto'
    argTypes:
    - proto::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 152
    functionName: raksha::ir::ProtoToIR::PostVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 4
    functionsReached:
    - has_operation_result_value
    - raksha::ir::ProtoToIR::PostVisit
    - block_argument_value
    - has_any_value
    - any_value
    - CHECK
    - has_block_argument_value
    - operation_result_value
    linkageType: ''
    returnType: void
    signature: void ProtoToIR::PostVisit(const proto::Value& value_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: raksha::ir::ProtoToIR::PostVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ProtoToIR::PostVisit(const proto::AnyValue&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' block_argument_proto'
    argTypes:
    - proto::BlockArgumentValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: raksha::ir::ProtoToIR::PostVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ProtoToIR::PostVisit(\n    const proto::BlockArgumentValue& block_argument_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' operation_argument_proto'
    argTypes:
    - proto::OperationResultValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: raksha::ir::ProtoToIR::PostVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ProtoToIR::PostVisit(\n    const proto::OperationResultValue&
      operation_argument_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' attribute_payload'
    argTypes:
    - proto::AttributePayload
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: raksha::ir::ProtoToIR::PostVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ProtoToIR::PostVisit(const proto::AttributePayload& attribute_payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blocks
      Src: /src/raksha/src/ir/proto_to_ir.cc:173,1
    - Dst: raksha::ir::ProtoToIR::ToIR
      Src: /src/raksha/src/ir/proto_to_ir.cc:174,1
    - Dst: id
      Src: /src/raksha/src/ir/proto_to_ir.cc:174,1
    - Dst: block
      Src: /src/raksha/src/ir/proto_to_ir.cc:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' module_proto'
    argTypes:
    - proto::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: raksha::ir::ProtoToIR::ToIR
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 1
    functionsReached:
    - id
    - block
    - raksha::ir::ProtoToIR::ToIR
    - blocks
    linkageType: ''
    returnType: void
    signature: void ProtoToIR::ToIR(const proto::Module& module_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/ir/proto_to_ir.cc:179,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:180,1
    - Dst: end
      Src: /src/raksha/src/ir/proto_to_ir.cc:180,1
    - Dst: results
      Src: /src/raksha/src/ir/proto_to_ir.cc:184,1
    - Dst: AddResult
      Src: /src/raksha/src/ir/proto_to_ir.cc:185,1
    - Dst: raksha::ir::ProtoToIR::ToIR
      Src: /src/raksha/src/ir/proto_to_ir.cc:185,1
    - Dst: operations
      Src: /src/raksha/src/ir/proto_to_ir.cc:188,1
    - Dst: id
      Src: /src/raksha/src/ir/proto_to_ir.cc:189,1
    - Dst: operation
      Src: /src/raksha/src/ir/proto_to_ir.cc:190,1
    - Dst: find
      Src: /src/raksha/src/ir/proto_to_ir.cc:191,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:192,1
    - Dst: end
      Src: /src/raksha/src/ir/proto_to_ir.cc:192,1
    - Dst: operator_name
      Src: /src/raksha/src/ir/proto_to_ir.cc:194,1
    - Dst: auto::second::get
      Src: /src/raksha/src/ir/proto_to_ir.cc:196,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:197,1
    - Dst: raksha::ir::ProtoToIR::ToIR
      Src: /src/raksha/src/ir/proto_to_ir.cc:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - block_id
    - ' block_proto'
    argTypes:
    - ProtoToIR::ID
    - proto::Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 200
    functionName: raksha::ir::ProtoToIR::ToIR
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 2
    functionsReached:
    - find
    - raksha::ir::ProtoToIR::ToIR
    - operations
    - operation
    - auto::second::get
    - operator_name
    - results
    - id
    - AddResult
    - CHECK
    - end
    linkageType: ''
    returnType: void
    signature: void ProtoToIR::ToIR(ProtoToIR::ID block_id, const proto::Block& block_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inputs
      Src: /src/raksha/src/ir/proto_to_ir.cc:205,1
    - Dst: AddInput
      Src: /src/raksha/src/ir/proto_to_ir.cc:206,1
    - Dst: raksha::ir::ProtoToIR::ToIR
      Src: /src/raksha/src/ir/proto_to_ir.cc:206,1
    - Dst: attributes
      Src: /src/raksha/src/ir/proto_to_ir.cc:208,1
    - Dst: AddAttribute
      Src: /src/raksha/src/ir/proto_to_ir.cc:209,1
    - Dst: raksha::ir::ProtoToIR::ToIR
      Src: /src/raksha/src/ir/proto_to_ir.cc:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' operation'
    - ' operation_proto'
    argTypes:
    - Operation
    - proto::Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 211
    functionName: raksha::ir::ProtoToIR::ToIR
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 3
    functionsReached:
    - raksha::ir::ProtoToIR::ToIR
    - AddInput
    - inputs
    - attributes
    - AddAttribute
    linkageType: ''
    returnType: void
    signature: "void ProtoToIR::ToIR(Operation& operation,\n                     const
      proto::Operation& operation_proto)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_any_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:215,1
    - Dst: Value
      Src: /src/raksha/src/ir/proto_to_ir.cc:216,1
    - Dst: raksha::ir::ProtoToIR::ToIR
      Src: /src/raksha/src/ir/proto_to_ir.cc:216,1
    - Dst: any_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:216,1
    - Dst: has_operation_result_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:217,1
    - Dst: Value
      Src: /src/raksha/src/ir/proto_to_ir.cc:218,1
    - Dst: raksha::ir::ProtoToIR::ToIR
      Src: /src/raksha/src/ir/proto_to_ir.cc:218,1
    - Dst: operation_result_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:218,1
    - Dst: has_block_argument_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:219,1
    - Dst: Value
      Src: /src/raksha/src/ir/proto_to_ir.cc:220,1
    - Dst: raksha::ir::ProtoToIR::ToIR
      Src: /src/raksha/src/ir/proto_to_ir.cc:220,1
    - Dst: block_argument_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:220,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:222,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/proto_to_ir.cc:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' value_proto'
    argTypes:
    - proto::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 226
    functionName: raksha::ir::ProtoToIR::ToIR
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 4
    functionsReached:
    - GetOrCreateID
    - has_operation_result_value
    - raksha::ir::ProtoToIR::ToIR
    - Value
    - block_argument_value
    - has_any_value
    - any_value
    - CHECK
    - has_block_argument_value
    - operation_result_value
    linkageType: ''
    returnType: Value
    signature: Value ProtoToIR::ToIR(const proto::Value& value_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: raksha::ir::ProtoToIR::ToIR
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: value::Any
    signature: value::Any ProtoToIR::ToIR(const proto::AnyValue&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_id
      Src: /src/raksha/src/ir/proto_to_ir.cc:236,1
    - Dst: find
      Src: /src/raksha/src/ir/proto_to_ir.cc:237,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:238,1
    - Dst: end
      Src: /src/raksha/src/ir/proto_to_ir.cc:238,1
    - Dst: auto::second::GetBlockPtr
      Src: /src/raksha/src/ir/proto_to_ir.cc:239,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
      Src: /src/raksha/src/ir/proto_to_ir.cc:240,1
    - Dst: block_argument_index
      Src: /src/raksha/src/ir/proto_to_ir.cc:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' block_argument_proto'
    argTypes:
    - proto::BlockArgumentValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 242
    functionName: raksha::ir::ProtoToIR::ToIR
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 4
    functionsReached:
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
    - block_id
    - find
    - auto::second::GetBlockPtr
    - block_argument_index
    - CHECK
    - end
    linkageType: ''
    returnType: value::BlockArgument
    signature: "value::BlockArgument ProtoToIR::ToIR(\n    const proto::BlockArgumentValue&
      block_argument_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: operation_id
      Src: /src/raksha/src/ir/proto_to_ir.cc:246,1
    - Dst: find
      Src: /src/raksha/src/ir/proto_to_ir.cc:247,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:248,1
    - Dst: end
      Src: /src/raksha/src/ir/proto_to_ir.cc:248,1
    - Dst: auto::second::get
      Src: /src/raksha/src/ir/proto_to_ir.cc:249,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/proto_to_ir.cc:250,1
    - Dst: output_index
      Src: /src/raksha/src/ir/proto_to_ir.cc:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' operation_argument_proto'
    argTypes:
    - proto::OperationResultValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 252
    functionName: raksha::ir::ProtoToIR::ToIR
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 4
    functionsReached:
    - find
    - auto::second::get
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - output_index
    - CHECK
    - end
    - operation_id
    linkageType: ''
    returnType: value::OperationResult
    signature: "value::OperationResult ProtoToIR::ToIR(\n    const proto::OperationResultValue&
      operation_argument_proto)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_float_payload
      Src: /src/raksha/src/ir/proto_to_ir.cc:255,1
    - Dst: Attribute::Create<FloatAttribute>
      Src: /src/raksha/src/ir/proto_to_ir.cc:256,1
    - Dst: float_payload
      Src: /src/raksha/src/ir/proto_to_ir.cc:256,1
    - Dst: has_int64_payload
      Src: /src/raksha/src/ir/proto_to_ir.cc:258,1
    - Dst: Attribute::Create<Int64Attribute>
      Src: /src/raksha/src/ir/proto_to_ir.cc:259,1
    - Dst: int64_payload
      Src: /src/raksha/src/ir/proto_to_ir.cc:259,1
    - Dst: has_string_payload
      Src: /src/raksha/src/ir/proto_to_ir.cc:261,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:262,1
    - Dst: Attribute::Create<StringAttribute>
      Src: /src/raksha/src/ir/proto_to_ir.cc:264,1
    - Dst: string_payload
      Src: /src/raksha/src/ir/proto_to_ir.cc:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' attribute_payload'
    argTypes:
    - proto::AttributePayload
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 265
    functionName: raksha::ir::ProtoToIR::ToIR
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 4
    functionsReached:
    - has_float_payload
    - has_string_payload
    - Attribute::Create<Int64Attribute>
    - int64_payload
    - Attribute::Create<FloatAttribute>
    - CHECK
    - has_int64_payload
    - Attribute::Create<StringAttribute>
    - string_payload
    - float_payload
    linkageType: ''
    returnType: Attribute
    signature: Attribute ProtoToIR::ToIR(const proto::AttributePayload& attribute_payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Module>
      Src: /src/raksha/src/ir/proto_to_ir.cc:30,1
    - Dst: blocks
      Src: /src/raksha/src/ir/proto_to_ir.cc:31,1
    - Dst: insert
      Src: /src/raksha/src/ir/proto_to_ir.cc:32,1
    - Dst: id
      Src: /src/raksha/src/ir/proto_to_ir.cc:32,1
    - Dst: BlockBuilder
      Src: /src/raksha/src/ir/proto_to_ir.cc:32,1
    - Dst: raksha::ir::ProtoToIR::PreVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:33,1
    - Dst: block
      Src: /src/raksha/src/ir/proto_to_ir.cc:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' module_proto'
    argTypes:
    - proto::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: raksha::ir::ProtoToIR::PreVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 5
    functionsReached:
    - raksha::ir::ProtoToIR::PreVisit
    - std::make_unique<Module>
    - block
    - id
    - BlockBuilder
    - blocks
    - insert
    linkageType: ''
    returnType: std::unique_ptr<Module>
    signature: std::unique_ptr<Module> ProtoToIR::PreVisit(const proto::Module& module_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: operations
      Src: /src/raksha/src/ir/proto_to_ir.cc:39,1
    - Dst: operation
      Src: /src/raksha/src/ir/proto_to_ir.cc:40,1
    - Dst: operator_name
      Src: /src/raksha/src/ir/proto_to_ir.cc:41,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/proto_to_ir.cc:42,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:43,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/proto_to_ir.cc:46,1
    - Dst: Value
      Src: /src/raksha/src/ir/proto_to_ir.cc:51,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/proto_to_ir.cc:52,1
    - Dst: insert
      Src: /src/raksha/src/ir/proto_to_ir.cc:53,1
    - Dst: id
      Src: /src/raksha/src/ir/proto_to_ir.cc:53,1
    - Dst: std::move
      Src: /src/raksha/src/ir/proto_to_ir.cc:53,1
    - Dst: raksha::ir::ProtoToIR::PreVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:54,1
    - Dst: results
      Src: /src/raksha/src/ir/proto_to_ir.cc:56,1
    - Dst: raksha::ir::ProtoToIR::PreVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' block_proto'
    argTypes:
    - proto::Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 59
    functionName: raksha::ir::ProtoToIR::PreVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 6
    functionsReached:
    - GetOrCreateID
    - Value
    - raksha::ir::ProtoToIR::PreVisit
    - operation
    - operations
    - operator_name
    - results
    - GetOperator
    - id
    - std::move
    - CHECK
    - std::make_unique<Operation>
    - insert
    linkageType: ''
    returnType: void
    signature: void ProtoToIR::PreVisit(const proto::Block& block_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inputs
      Src: /src/raksha/src/ir/proto_to_ir.cc:62,1
    - Dst: raksha::ir::ProtoToIR::PreVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:63,1
    - Dst: attributes
      Src: /src/raksha/src/ir/proto_to_ir.cc:65,1
    - Dst: raksha::ir::ProtoToIR::PreVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' operation_proto'
    argTypes:
    - proto::Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: raksha::ir::ProtoToIR::PreVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 7
    functionsReached:
    - raksha::ir::ProtoToIR::PreVisit
    - inputs
    - attributes
    linkageType: ''
    returnType: void
    signature: void ProtoToIR::PreVisit(const proto::Operation& operation_proto)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_any_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:72,1
    - Dst: raksha::ir::ProtoToIR::PreVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:73,1
    - Dst: any_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:73,1
    - Dst: has_operation_result_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:74,1
    - Dst: raksha::ir::ProtoToIR::PreVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:75,1
    - Dst: operation_result_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:75,1
    - Dst: has_block_argument_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:76,1
    - Dst: raksha::ir::ProtoToIR::PreVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:77,1
    - Dst: block_argument_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:77,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' value_proto'
    argTypes:
    - proto::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: raksha::ir::ProtoToIR::PreVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 8
    functionsReached:
    - has_operation_result_value
    - raksha::ir::ProtoToIR::PreVisit
    - block_argument_value
    - has_any_value
    - any_value
    - CHECK
    - has_block_argument_value
    - operation_result_value
    linkageType: ''
    returnType: void
    signature: void ProtoToIR::PreVisit(const proto::Value& value_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: raksha::ir::ProtoToIR::PreVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ProtoToIR::PreVisit(const proto::AnyValue&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' block_argument_proto'
    argTypes:
    - proto::BlockArgumentValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: raksha::ir::ProtoToIR::PreVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ProtoToIR::PreVisit(\n    const proto::BlockArgumentValue& block_argument_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' operation_argument_proto'
    argTypes:
    - proto::OperationResultValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: raksha::ir::ProtoToIR::PreVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ProtoToIR::PreVisit(\n    const proto::OperationResultValue&
      operation_argument_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' attribute_payload'
    argTypes:
    - proto::AttributePayload
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: raksha::ir::ProtoToIR::PreVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ProtoToIR::PreVisit(const proto::AttributePayload& attribute_payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blocks
      Src: /src/raksha/src/ir/proto_to_ir.cc:102,1
    - Dst: find
      Src: /src/raksha/src/ir/proto_to_ir.cc:103,1
    - Dst: id
      Src: /src/raksha/src/ir/proto_to_ir.cc:103,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:104,1
    - Dst: end
      Src: /src/raksha/src/ir/proto_to_ir.cc:104,1
    - Dst: raksha::ir::ProtoToIR::PostVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:107,1
    - Dst: block
      Src: /src/raksha/src/ir/proto_to_ir.cc:107,1
    - Dst: AddBlock
      Src: /src/raksha/src/ir/proto_to_ir.cc:108,1
    - Dst: build
      Src: /src/raksha/src/ir/proto_to_ir.cc:108,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/proto_to_ir.cc:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' module'
    - ' module_proto'
    argTypes:
    - Module
    - proto::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: raksha::ir::ProtoToIR::PostVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 5
    functionsReached:
    - GetOrCreateID
    - AddBlock
    - find
    - build
    - raksha::ir::ProtoToIR::PostVisit
    - block
    - id
    - blocks
    - end
    - CHECK
    linkageType: ''
    returnType: void
    signature: void ProtoToIR::PostVisit(Module& module, const proto::Module& module_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: operations
      Src: /src/raksha/src/ir/proto_to_ir.cc:116,1
    - Dst: find
      Src: /src/raksha/src/ir/proto_to_ir.cc:117,1
    - Dst: id
      Src: /src/raksha/src/ir/proto_to_ir.cc:117,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:118,1
    - Dst: end
      Src: /src/raksha/src/ir/proto_to_ir.cc:118,1
    - Dst: std::move
      Src: /src/raksha/src/ir/proto_to_ir.cc:120,1
    - Dst: raksha::ir::ProtoToIR::PostVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:121,1
    - Dst: operation
      Src: /src/raksha/src/ir/proto_to_ir.cc:121,1
    - Dst: AddOperation
      Src: /src/raksha/src/ir/proto_to_ir.cc:122,1
    - Dst: std::move
      Src: /src/raksha/src/ir/proto_to_ir.cc:122,1
    - Dst: results
      Src: /src/raksha/src/ir/proto_to_ir.cc:124,1
    - Dst: raksha::ir::ProtoToIR::PostVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:125,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/proto_to_ir.cc:128,1
    - Dst: GetBlockPtr
      Src: /src/raksha/src/ir/proto_to_ir.cc:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' block'
    - ' block_proto'
    argTypes:
    - BlockBuilder
    - proto::Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 129
    functionName: raksha::ir::ProtoToIR::PostVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 6
    functionsReached:
    - GetOrCreateID
    - find
    - AddOperation
    - operations
    - raksha::ir::ProtoToIR::PostVisit
    - operation
    - results
    - id
    - std::move
    - GetBlockPtr
    - CHECK
    - end
    linkageType: ''
    returnType: void
    signature: "void ProtoToIR::PostVisit(BlockBuilder& block,\n                          const
      proto::Block& block_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inputs
      Src: /src/raksha/src/ir/proto_to_ir.cc:133,1
    - Dst: raksha::ir::ProtoToIR::PostVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:134,1
    - Dst: attributes
      Src: /src/raksha/src/ir/proto_to_ir.cc:136,1
    - Dst: raksha::ir::ProtoToIR::PostVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' op'
    - ' operation_proto'
    argTypes:
    - Operation
    - proto::Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 140
    functionName: raksha::ir::ProtoToIR::PostVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 7
    functionsReached:
    - raksha::ir::ProtoToIR::PostVisit
    - inputs
    - attributes
    linkageType: ''
    returnType: void
    signature: "void ProtoToIR::PostVisit(Operation& op,\n                          const
      proto::Operation& operation_proto)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_any_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:143,1
    - Dst: raksha::ir::ProtoToIR::PostVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:144,1
    - Dst: any_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:144,1
    - Dst: has_operation_result_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:145,1
    - Dst: raksha::ir::ProtoToIR::PostVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:146,1
    - Dst: operation_result_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:146,1
    - Dst: has_block_argument_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:147,1
    - Dst: raksha::ir::ProtoToIR::PostVisit
      Src: /src/raksha/src/ir/proto_to_ir.cc:148,1
    - Dst: block_argument_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:148,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' value_proto'
    argTypes:
    - proto::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 152
    functionName: raksha::ir::ProtoToIR::PostVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 8
    functionsReached:
    - has_operation_result_value
    - raksha::ir::ProtoToIR::PostVisit
    - block_argument_value
    - has_any_value
    - any_value
    - CHECK
    - has_block_argument_value
    - operation_result_value
    linkageType: ''
    returnType: void
    signature: void ProtoToIR::PostVisit(const proto::Value& value_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: raksha::ir::ProtoToIR::PostVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ProtoToIR::PostVisit(const proto::AnyValue&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' block_argument_proto'
    argTypes:
    - proto::BlockArgumentValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: raksha::ir::ProtoToIR::PostVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ProtoToIR::PostVisit(\n    const proto::BlockArgumentValue& block_argument_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' operation_argument_proto'
    argTypes:
    - proto::OperationResultValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: raksha::ir::ProtoToIR::PostVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ProtoToIR::PostVisit(\n    const proto::OperationResultValue&
      operation_argument_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' attribute_payload'
    argTypes:
    - proto::AttributePayload
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: raksha::ir::ProtoToIR::PostVisit
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ProtoToIR::PostVisit(const proto::AttributePayload& attribute_payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blocks
      Src: /src/raksha/src/ir/proto_to_ir.cc:173,1
    - Dst: raksha::ir::ProtoToIR::ToIR
      Src: /src/raksha/src/ir/proto_to_ir.cc:174,1
    - Dst: id
      Src: /src/raksha/src/ir/proto_to_ir.cc:174,1
    - Dst: block
      Src: /src/raksha/src/ir/proto_to_ir.cc:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' module_proto'
    argTypes:
    - proto::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: raksha::ir::ProtoToIR::ToIR
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 5
    functionsReached:
    - id
    - block
    - raksha::ir::ProtoToIR::ToIR
    - blocks
    linkageType: ''
    returnType: void
    signature: void ProtoToIR::ToIR(const proto::Module& module_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/ir/proto_to_ir.cc:179,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:180,1
    - Dst: end
      Src: /src/raksha/src/ir/proto_to_ir.cc:180,1
    - Dst: results
      Src: /src/raksha/src/ir/proto_to_ir.cc:184,1
    - Dst: AddResult
      Src: /src/raksha/src/ir/proto_to_ir.cc:185,1
    - Dst: raksha::ir::ProtoToIR::ToIR
      Src: /src/raksha/src/ir/proto_to_ir.cc:185,1
    - Dst: operations
      Src: /src/raksha/src/ir/proto_to_ir.cc:188,1
    - Dst: id
      Src: /src/raksha/src/ir/proto_to_ir.cc:189,1
    - Dst: operation
      Src: /src/raksha/src/ir/proto_to_ir.cc:190,1
    - Dst: find
      Src: /src/raksha/src/ir/proto_to_ir.cc:191,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:192,1
    - Dst: end
      Src: /src/raksha/src/ir/proto_to_ir.cc:192,1
    - Dst: operator_name
      Src: /src/raksha/src/ir/proto_to_ir.cc:194,1
    - Dst: auto::second::get
      Src: /src/raksha/src/ir/proto_to_ir.cc:196,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:197,1
    - Dst: raksha::ir::ProtoToIR::ToIR
      Src: /src/raksha/src/ir/proto_to_ir.cc:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - block_id
    - ' block_proto'
    argTypes:
    - ProtoToIR::ID
    - proto::Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 200
    functionName: raksha::ir::ProtoToIR::ToIR
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 6
    functionsReached:
    - find
    - raksha::ir::ProtoToIR::ToIR
    - operations
    - operation
    - auto::second::get
    - operator_name
    - results
    - id
    - AddResult
    - CHECK
    - end
    linkageType: ''
    returnType: void
    signature: void ProtoToIR::ToIR(ProtoToIR::ID block_id, const proto::Block& block_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inputs
      Src: /src/raksha/src/ir/proto_to_ir.cc:205,1
    - Dst: AddInput
      Src: /src/raksha/src/ir/proto_to_ir.cc:206,1
    - Dst: raksha::ir::ProtoToIR::ToIR
      Src: /src/raksha/src/ir/proto_to_ir.cc:206,1
    - Dst: attributes
      Src: /src/raksha/src/ir/proto_to_ir.cc:208,1
    - Dst: AddAttribute
      Src: /src/raksha/src/ir/proto_to_ir.cc:209,1
    - Dst: raksha::ir::ProtoToIR::ToIR
      Src: /src/raksha/src/ir/proto_to_ir.cc:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' operation'
    - ' operation_proto'
    argTypes:
    - Operation
    - proto::Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 211
    functionName: raksha::ir::ProtoToIR::ToIR
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 7
    functionsReached:
    - raksha::ir::ProtoToIR::ToIR
    - AddInput
    - inputs
    - attributes
    - AddAttribute
    linkageType: ''
    returnType: void
    signature: "void ProtoToIR::ToIR(Operation& operation,\n                     const
      proto::Operation& operation_proto)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_any_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:215,1
    - Dst: Value
      Src: /src/raksha/src/ir/proto_to_ir.cc:216,1
    - Dst: raksha::ir::ProtoToIR::ToIR
      Src: /src/raksha/src/ir/proto_to_ir.cc:216,1
    - Dst: any_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:216,1
    - Dst: has_operation_result_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:217,1
    - Dst: Value
      Src: /src/raksha/src/ir/proto_to_ir.cc:218,1
    - Dst: raksha::ir::ProtoToIR::ToIR
      Src: /src/raksha/src/ir/proto_to_ir.cc:218,1
    - Dst: operation_result_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:218,1
    - Dst: has_block_argument_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:219,1
    - Dst: Value
      Src: /src/raksha/src/ir/proto_to_ir.cc:220,1
    - Dst: raksha::ir::ProtoToIR::ToIR
      Src: /src/raksha/src/ir/proto_to_ir.cc:220,1
    - Dst: block_argument_value
      Src: /src/raksha/src/ir/proto_to_ir.cc:220,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:222,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/proto_to_ir.cc:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' value_proto'
    argTypes:
    - proto::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 226
    functionName: raksha::ir::ProtoToIR::ToIR
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 8
    functionsReached:
    - GetOrCreateID
    - has_operation_result_value
    - raksha::ir::ProtoToIR::ToIR
    - Value
    - block_argument_value
    - has_any_value
    - any_value
    - CHECK
    - has_block_argument_value
    - operation_result_value
    linkageType: ''
    returnType: Value
    signature: Value ProtoToIR::ToIR(const proto::Value& value_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: raksha::ir::ProtoToIR::ToIR
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: value::Any
    signature: value::Any ProtoToIR::ToIR(const proto::AnyValue&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_id
      Src: /src/raksha/src/ir/proto_to_ir.cc:236,1
    - Dst: find
      Src: /src/raksha/src/ir/proto_to_ir.cc:237,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:238,1
    - Dst: end
      Src: /src/raksha/src/ir/proto_to_ir.cc:238,1
    - Dst: auto::second::GetBlockPtr
      Src: /src/raksha/src/ir/proto_to_ir.cc:239,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
      Src: /src/raksha/src/ir/proto_to_ir.cc:240,1
    - Dst: block_argument_index
      Src: /src/raksha/src/ir/proto_to_ir.cc:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' block_argument_proto'
    argTypes:
    - proto::BlockArgumentValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 242
    functionName: raksha::ir::ProtoToIR::ToIR
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 8
    functionsReached:
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
    - block_id
    - find
    - auto::second::GetBlockPtr
    - block_argument_index
    - CHECK
    - end
    linkageType: ''
    returnType: value::BlockArgument
    signature: "value::BlockArgument ProtoToIR::ToIR(\n    const proto::BlockArgumentValue&
      block_argument_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: operation_id
      Src: /src/raksha/src/ir/proto_to_ir.cc:246,1
    - Dst: find
      Src: /src/raksha/src/ir/proto_to_ir.cc:247,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:248,1
    - Dst: end
      Src: /src/raksha/src/ir/proto_to_ir.cc:248,1
    - Dst: auto::second::get
      Src: /src/raksha/src/ir/proto_to_ir.cc:249,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/proto_to_ir.cc:250,1
    - Dst: output_index
      Src: /src/raksha/src/ir/proto_to_ir.cc:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' operation_argument_proto'
    argTypes:
    - proto::OperationResultValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 252
    functionName: raksha::ir::ProtoToIR::ToIR
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 8
    functionsReached:
    - find
    - auto::second::get
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - output_index
    - CHECK
    - end
    - operation_id
    linkageType: ''
    returnType: value::OperationResult
    signature: "value::OperationResult ProtoToIR::ToIR(\n    const proto::OperationResultValue&
      operation_argument_proto)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_float_payload
      Src: /src/raksha/src/ir/proto_to_ir.cc:255,1
    - Dst: Attribute::Create<FloatAttribute>
      Src: /src/raksha/src/ir/proto_to_ir.cc:256,1
    - Dst: float_payload
      Src: /src/raksha/src/ir/proto_to_ir.cc:256,1
    - Dst: has_int64_payload
      Src: /src/raksha/src/ir/proto_to_ir.cc:258,1
    - Dst: Attribute::Create<Int64Attribute>
      Src: /src/raksha/src/ir/proto_to_ir.cc:259,1
    - Dst: int64_payload
      Src: /src/raksha/src/ir/proto_to_ir.cc:259,1
    - Dst: has_string_payload
      Src: /src/raksha/src/ir/proto_to_ir.cc:261,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.cc:262,1
    - Dst: Attribute::Create<StringAttribute>
      Src: /src/raksha/src/ir/proto_to_ir.cc:264,1
    - Dst: string_payload
      Src: /src/raksha/src/ir/proto_to_ir.cc:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' attribute_payload'
    argTypes:
    - proto::AttributePayload
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 265
    functionName: raksha::ir::ProtoToIR::ToIR
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.cc
    functionUses: 8
    functionsReached:
    - has_float_payload
    - has_string_payload
    - Attribute::Create<Int64Attribute>
    - int64_payload
    - Attribute::Create<FloatAttribute>
    - CHECK
    - has_int64_payload
    - Attribute::Create<StringAttribute>
    - string_payload
    - float_payload
    linkageType: ''
    returnType: Attribute
    signature: Attribute ProtoToIR::ToIR(const proto::AttributePayload& attribute_payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/raksha/src/ir/value_string_converter.cc:9,1
    - Dst: ToString
      Src: /src/raksha/src/ir/value_string_converter.cc:11,1
    - Dst: raksha::ir::StoredValueToString
      Src: /src/raksha/src/ir/value_string_converter.cc:13,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_string_converter.cc:16,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_string_converter.cc:16,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_string_converter.cc:19,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_string_converter.cc:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - value
    - ' ssa_names'
    argTypes:
    - Value
    - SsaNames
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 22
    functionName: raksha::ir::ValueToString
    functionSourceFile: /src/raksha/src/ir/value_string_converter.cc
    functionUses: 12
    functionsReached:
    - GetOrCreateID
    - Value
    - ToString
    - raksha::ir::StoredValueToString
    - std::visit
    linkageType: ''
    returnType: std::string
    signature: std::string ValueToString(Value value, SsaNames& ssa_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value::StoredValue::storage
      Src: /src/raksha/src/ir/value_string_converter.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stored_value
    argTypes:
    - value::StoredValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: raksha::ir::StoredValueToString
    functionSourceFile: /src/raksha/src/ir/value_string_converter.cc
    functionUses: 1
    functionsReached:
    - value::StoredValue::storage
    linkageType: ''
    returnType: std::string
    signature: std::string StoredValueToString(value::StoredValue stored_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/raksha/src/ir/value_string_converter.cc:9,1
    - Dst: ToString
      Src: /src/raksha/src/ir/value_string_converter.cc:11,1
    - Dst: raksha::ir::StoredValueToString
      Src: /src/raksha/src/ir/value_string_converter.cc:13,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_string_converter.cc:16,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_string_converter.cc:16,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/value_string_converter.cc:19,1
    - Dst: Value
      Src: /src/raksha/src/ir/value_string_converter.cc:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - value
    - ' ssa_names'
    argTypes:
    - Value
    - SsaNames
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 22
    functionName: raksha::ir::ValueToString
    functionSourceFile: /src/raksha/src/ir/value_string_converter.cc
    functionUses: 12
    functionsReached:
    - GetOrCreateID
    - Value
    - ToString
    - raksha::ir::StoredValueToString
    - std::visit
    linkageType: ''
    returnType: std::string
    signature: std::string ValueToString(Value value, SsaNames& ssa_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value::StoredValue::storage
      Src: /src/raksha/src/ir/value_string_converter.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stored_value
    argTypes:
    - value::StoredValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: raksha::ir::StoredValueToString
    functionSourceFile: /src/raksha/src/ir/value_string_converter.cc
    functionUses: 2
    functionsReached:
    - value::StoredValue::storage
    linkageType: ''
    returnType: std::string
    signature: std::string StoredValueToString(value::StoredValue stored_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_printer_test.cc:49,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/ir_printer_test.cc:49,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_printer_test.cc:50,1
    - Dst: AddBlock
      Src: /src/raksha/src/ir/ir_printer_test.cc:50,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/ir_printer_test.cc:50,1
    - Dst: AddBlock
      Src: /src/raksha/src/ir/ir_printer_test.cc:51,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_printer_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: raksha::ir::IRPrinterTest::IRPrinterTest
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - AddBlock
    - std::make_unique<Block>
    - std::addressof
    - BlockBuilder::build
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void IRPrinterTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: '& plus_op() const'
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operator
    signature: Operator & plus_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: '& minus_op() const'
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operator
    signature: Operator & minus_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& block() const'
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Block
    signature: Block & block() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: '& global_module() const'
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Module
    signature: Module & global_module() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/ir_printer_test.cc:61,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:63,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:66,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/ir/ir_printer_test.cc:67,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/ir/ir_printer_test.cc:72,1
    - Dst: LOG
      Src: /src/raksha/src/ir/ir_printer_test.cc:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ' entity'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 78
    functionName: raksha::ir::IRPrinterTest::ToString
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - LOG
    - std::ostringstream::str
    - GetParam
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(const T& entity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_printer_test.cc:95,1
    - Dst: ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:95,1
    - Dst: global_module
      Src: /src/raksha/src/ir/ir_printer_test.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - EXPECT_EQ
    - global_module
    linkageType: ''
    returnType: void
    signature: void TEST_P(IRPrinterTest, PrettyPrintsModuleWithProperIndentation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_printer_test.cc:106,1
    - Dst: ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:106,1
    - Dst: block
      Src: /src/raksha/src/ir/ir_printer_test.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - block
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(IRPrinterTest, PrettyPrintsBlockWithProperIndentation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: plus_op
      Src: /src/raksha/src/ir/ir_printer_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_printer_test.cc:114,1
    - Dst: ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - EXPECT_EQ
    - plus_op
    linkageType: ''
    returnType: void
    signature: void TEST_P(IRPrinterTest, PrettyPrintsOperationWithProperIndentation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: minus_op
      Src: /src/raksha/src/ir/ir_printer_test.cc:120,1
    - Dst: Attribute::Create<StringAttribute>
      Src: /src/raksha/src/ir/ir_printer_test.cc:121,1
    - Dst: Attribute::Create<StringAttribute>
      Src: /src/raksha/src/ir/ir_printer_test.cc:122,1
    - Dst: Value
      Src: /src/raksha/src/ir/ir_printer_test.cc:123,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/ir_printer_test.cc:123,1
    - Dst: Value
      Src: /src/raksha/src/ir/ir_printer_test.cc:123,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/ir_printer_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_printer_test.cc:125,1
    - Dst: ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 128
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Value
    - minus_op
    - ToString
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - Attribute::Create<StringAttribute>
    linkageType: ''
    returnType: void
    signature: void TEST_P(IRPrinterTest, PrettyPrintAttributesInSortedOrder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_printer_test.cc:137,1
    - Dst: raksha::ir::IRPrinter::PrintNamedMapInNameOrder
      Src: /src/raksha/src/ir/ir_printer_test.cc:137,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/ir_printer_test.cc:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 140
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::PrintNamedMapInNameOrder
    - EXPECT_THAT
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: void TEST(IRPrinterPrintNamedMapOrderTest, PrintsInSortedOrder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RE2::GlobalReplace
      Src: /src/raksha/src/ir/ir_printer_test.cc:153,1
    - Dst: RE2::GlobalReplace
      Src: /src/raksha/src/ir/ir_printer_test.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: raksha::ir::EliminateWhitespaceAndComments
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - RE2::GlobalReplace
    linkageType: ''
    returnType: std::string
    signature: std::string EliminateWhitespaceAndComments(std::string s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseProgram
      Src: /src/raksha/src/ir/ir_printer_test.cc:160,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:161,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_printer_test.cc:162,1
    - Dst: raksha::ir::EliminateWhitespaceAndComments
      Src: /src/raksha/src/ir/ir_printer_test.cc:162,1
    - Dst: raksha::ir::EliminateWhitespaceAndComments
      Src: /src/raksha/src/ir/ir_printer_test.cc:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - EXPECT_EQ
    - raksha::ir::EliminateWhitespaceAndComments
    - ParseProgram
    linkageType: ''
    returnType: void
    signature: void TEST_P(IRParserPrinterRoundTripTest, IrPrinterRoundTripTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_printer_test.cc:49,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/ir_printer_test.cc:49,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_printer_test.cc:50,1
    - Dst: AddBlock
      Src: /src/raksha/src/ir/ir_printer_test.cc:50,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/ir_printer_test.cc:50,1
    - Dst: AddBlock
      Src: /src/raksha/src/ir/ir_printer_test.cc:51,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_printer_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: raksha::ir::IRPrinterTest::IRPrinterTest
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - AddBlock
    - std::make_unique<Block>
    - std::addressof
    - BlockBuilder::build
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void IRPrinterTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: '& plus_op() const'
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operator
    signature: Operator & plus_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: '& minus_op() const'
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operator
    signature: Operator & minus_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& block() const'
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Block
    signature: Block & block() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: '& global_module() const'
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Module
    signature: Module & global_module() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/ir_printer_test.cc:61,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:63,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:66,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/ir/ir_printer_test.cc:67,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/ir/ir_printer_test.cc:72,1
    - Dst: LOG
      Src: /src/raksha/src/ir/ir_printer_test.cc:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ' entity'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 78
    functionName: raksha::ir::IRPrinterTest::ToString
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - LOG
    - std::ostringstream::str
    - GetParam
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(const T& entity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_printer_test.cc:95,1
    - Dst: ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:95,1
    - Dst: global_module
      Src: /src/raksha/src/ir/ir_printer_test.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - EXPECT_EQ
    - global_module
    linkageType: ''
    returnType: void
    signature: void TEST_P(IRPrinterTest, PrettyPrintsModuleWithProperIndentation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_printer_test.cc:106,1
    - Dst: ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:106,1
    - Dst: block
      Src: /src/raksha/src/ir/ir_printer_test.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - block
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(IRPrinterTest, PrettyPrintsBlockWithProperIndentation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: plus_op
      Src: /src/raksha/src/ir/ir_printer_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_printer_test.cc:114,1
    - Dst: ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - EXPECT_EQ
    - plus_op
    linkageType: ''
    returnType: void
    signature: void TEST_P(IRPrinterTest, PrettyPrintsOperationWithProperIndentation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: minus_op
      Src: /src/raksha/src/ir/ir_printer_test.cc:120,1
    - Dst: Attribute::Create<StringAttribute>
      Src: /src/raksha/src/ir/ir_printer_test.cc:121,1
    - Dst: Attribute::Create<StringAttribute>
      Src: /src/raksha/src/ir/ir_printer_test.cc:122,1
    - Dst: Value
      Src: /src/raksha/src/ir/ir_printer_test.cc:123,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/ir_printer_test.cc:123,1
    - Dst: Value
      Src: /src/raksha/src/ir/ir_printer_test.cc:123,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/ir_printer_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_printer_test.cc:125,1
    - Dst: ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 128
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Value
    - minus_op
    - ToString
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - Attribute::Create<StringAttribute>
    linkageType: ''
    returnType: void
    signature: void TEST_P(IRPrinterTest, PrettyPrintAttributesInSortedOrder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_printer_test.cc:137,1
    - Dst: raksha::ir::IRPrinter::PrintNamedMapInNameOrder
      Src: /src/raksha/src/ir/ir_printer_test.cc:137,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/ir_printer_test.cc:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 140
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::PrintNamedMapInNameOrder
    - EXPECT_THAT
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: void TEST(IRPrinterPrintNamedMapOrderTest, PrintsInSortedOrder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RE2::GlobalReplace
      Src: /src/raksha/src/ir/ir_printer_test.cc:153,1
    - Dst: RE2::GlobalReplace
      Src: /src/raksha/src/ir/ir_printer_test.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: raksha::ir::EliminateWhitespaceAndComments
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 1
    functionsReached:
    - RE2::GlobalReplace
    linkageType: ''
    returnType: std::string
    signature: std::string EliminateWhitespaceAndComments(std::string s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseProgram
      Src: /src/raksha/src/ir/ir_printer_test.cc:160,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:161,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_printer_test.cc:162,1
    - Dst: raksha::ir::EliminateWhitespaceAndComments
      Src: /src/raksha/src/ir/ir_printer_test.cc:162,1
    - Dst: raksha::ir::EliminateWhitespaceAndComments
      Src: /src/raksha/src/ir/ir_printer_test.cc:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - EXPECT_EQ
    - raksha::ir::EliminateWhitespaceAndComments
    - ParseProgram
    linkageType: ''
    returnType: void
    signature: void TEST_P(IRParserPrinterRoundTripTest, IrPrinterRoundTripTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_printer_test.cc:49,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/ir_printer_test.cc:49,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_printer_test.cc:50,1
    - Dst: AddBlock
      Src: /src/raksha/src/ir/ir_printer_test.cc:50,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/ir_printer_test.cc:50,1
    - Dst: AddBlock
      Src: /src/raksha/src/ir/ir_printer_test.cc:51,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_printer_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: raksha::ir::IRPrinterTest::IRPrinterTest
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - AddBlock
    - std::make_unique<Block>
    - std::addressof
    - BlockBuilder::build
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void IRPrinterTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: '& plus_op() const'
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operator
    signature: Operator & plus_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: '& minus_op() const'
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operator
    signature: Operator & minus_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& block() const'
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Block
    signature: Block & block() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: '& global_module() const'
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Module
    signature: Module & global_module() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/ir_printer_test.cc:61,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:63,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:66,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/ir/ir_printer_test.cc:67,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/ir/ir_printer_test.cc:72,1
    - Dst: LOG
      Src: /src/raksha/src/ir/ir_printer_test.cc:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ' entity'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 78
    functionName: raksha::ir::IRPrinterTest::ToString
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - LOG
    - std::ostringstream::str
    - GetParam
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(const T& entity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_printer_test.cc:95,1
    - Dst: ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:95,1
    - Dst: global_module
      Src: /src/raksha/src/ir/ir_printer_test.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - EXPECT_EQ
    - global_module
    linkageType: ''
    returnType: void
    signature: void TEST_P(IRPrinterTest, PrettyPrintsModuleWithProperIndentation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_printer_test.cc:106,1
    - Dst: ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:106,1
    - Dst: block
      Src: /src/raksha/src/ir/ir_printer_test.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - block
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(IRPrinterTest, PrettyPrintsBlockWithProperIndentation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: plus_op
      Src: /src/raksha/src/ir/ir_printer_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_printer_test.cc:114,1
    - Dst: ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - EXPECT_EQ
    - plus_op
    linkageType: ''
    returnType: void
    signature: void TEST_P(IRPrinterTest, PrettyPrintsOperationWithProperIndentation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: minus_op
      Src: /src/raksha/src/ir/ir_printer_test.cc:120,1
    - Dst: Attribute::Create<StringAttribute>
      Src: /src/raksha/src/ir/ir_printer_test.cc:121,1
    - Dst: Attribute::Create<StringAttribute>
      Src: /src/raksha/src/ir/ir_printer_test.cc:122,1
    - Dst: Value
      Src: /src/raksha/src/ir/ir_printer_test.cc:123,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/ir_printer_test.cc:123,1
    - Dst: Value
      Src: /src/raksha/src/ir/ir_printer_test.cc:123,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/ir_printer_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_printer_test.cc:125,1
    - Dst: ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 128
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Value
    - minus_op
    - ToString
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - Attribute::Create<StringAttribute>
    linkageType: ''
    returnType: void
    signature: void TEST_P(IRPrinterTest, PrettyPrintAttributesInSortedOrder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_printer_test.cc:137,1
    - Dst: raksha::ir::IRPrinter::PrintNamedMapInNameOrder
      Src: /src/raksha/src/ir/ir_printer_test.cc:137,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/ir_printer_test.cc:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 140
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::PrintNamedMapInNameOrder
    - EXPECT_THAT
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: void TEST(IRPrinterPrintNamedMapOrderTest, PrintsInSortedOrder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RE2::GlobalReplace
      Src: /src/raksha/src/ir/ir_printer_test.cc:153,1
    - Dst: RE2::GlobalReplace
      Src: /src/raksha/src/ir/ir_printer_test.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: raksha::ir::EliminateWhitespaceAndComments
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 2
    functionsReached:
    - RE2::GlobalReplace
    linkageType: ''
    returnType: std::string
    signature: std::string EliminateWhitespaceAndComments(std::string s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseProgram
      Src: /src/raksha/src/ir/ir_printer_test.cc:160,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:161,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_printer_test.cc:162,1
    - Dst: raksha::ir::EliminateWhitespaceAndComments
      Src: /src/raksha/src/ir/ir_printer_test.cc:162,1
    - Dst: raksha::ir::EliminateWhitespaceAndComments
      Src: /src/raksha/src/ir/ir_printer_test.cc:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - EXPECT_EQ
    - raksha::ir::EliminateWhitespaceAndComments
    - ParseProgram
    linkageType: ''
    returnType: void
    signature: void TEST_P(IRParserPrinterRoundTripTest, IrPrinterRoundTripTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_printer_test.cc:49,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/ir_printer_test.cc:49,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_printer_test.cc:50,1
    - Dst: AddBlock
      Src: /src/raksha/src/ir/ir_printer_test.cc:50,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/ir_printer_test.cc:50,1
    - Dst: AddBlock
      Src: /src/raksha/src/ir/ir_printer_test.cc:51,1
    - Dst: std::make_unique<Block>
      Src: /src/raksha/src/ir/ir_printer_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: raksha::ir::IRPrinterTest::IRPrinterTest
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - AddBlock
    - std::make_unique<Block>
    - std::addressof
    - BlockBuilder::build
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void IRPrinterTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: '& plus_op() const'
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operator
    signature: Operator & plus_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: '& minus_op() const'
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operator
    signature: Operator & minus_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& block() const'
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Block
    signature: Block & block() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: '& global_module() const'
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Module
    signature: Module & global_module() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/ir_printer_test.cc:61,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:63,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:66,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/ir/ir_printer_test.cc:67,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/ir/ir_printer_test.cc:72,1
    - Dst: LOG
      Src: /src/raksha/src/ir/ir_printer_test.cc:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ' entity'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 78
    functionName: raksha::ir::IRPrinterTest::ToString
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - LOG
    - std::ostringstream::str
    - GetParam
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(const T& entity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_printer_test.cc:95,1
    - Dst: ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:95,1
    - Dst: global_module
      Src: /src/raksha/src/ir/ir_printer_test.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - EXPECT_EQ
    - global_module
    linkageType: ''
    returnType: void
    signature: void TEST_P(IRPrinterTest, PrettyPrintsModuleWithProperIndentation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_printer_test.cc:106,1
    - Dst: ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:106,1
    - Dst: block
      Src: /src/raksha/src/ir/ir_printer_test.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - block
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(IRPrinterTest, PrettyPrintsBlockWithProperIndentation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: plus_op
      Src: /src/raksha/src/ir/ir_printer_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_printer_test.cc:114,1
    - Dst: ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - EXPECT_EQ
    - plus_op
    linkageType: ''
    returnType: void
    signature: void TEST_P(IRPrinterTest, PrettyPrintsOperationWithProperIndentation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: minus_op
      Src: /src/raksha/src/ir/ir_printer_test.cc:120,1
    - Dst: Attribute::Create<StringAttribute>
      Src: /src/raksha/src/ir/ir_printer_test.cc:121,1
    - Dst: Attribute::Create<StringAttribute>
      Src: /src/raksha/src/ir/ir_printer_test.cc:122,1
    - Dst: Value
      Src: /src/raksha/src/ir/ir_printer_test.cc:123,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/ir_printer_test.cc:123,1
    - Dst: Value
      Src: /src/raksha/src/ir/ir_printer_test.cc:123,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/ir_printer_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_printer_test.cc:125,1
    - Dst: ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 128
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Value
    - minus_op
    - ToString
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - Attribute::Create<StringAttribute>
    linkageType: ''
    returnType: void
    signature: void TEST_P(IRPrinterTest, PrettyPrintAttributesInSortedOrder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_printer_test.cc:137,1
    - Dst: raksha::ir::IRPrinter::PrintNamedMapInNameOrder
      Src: /src/raksha/src/ir/ir_printer_test.cc:137,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/ir_printer_test.cc:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 140
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::PrintNamedMapInNameOrder
    - EXPECT_THAT
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: void TEST(IRPrinterPrintNamedMapOrderTest, PrintsInSortedOrder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RE2::GlobalReplace
      Src: /src/raksha/src/ir/ir_printer_test.cc:153,1
    - Dst: RE2::GlobalReplace
      Src: /src/raksha/src/ir/ir_printer_test.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: raksha::ir::EliminateWhitespaceAndComments
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 3
    functionsReached:
    - RE2::GlobalReplace
    linkageType: ''
    returnType: std::string
    signature: std::string EliminateWhitespaceAndComments(std::string s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseProgram
      Src: /src/raksha/src/ir/ir_printer_test.cc:160,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer_test.cc:161,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_printer_test.cc:162,1
    - Dst: raksha::ir::EliminateWhitespaceAndComments
      Src: /src/raksha/src/ir/ir_printer_test.cc:162,1
    - Dst: raksha::ir::EliminateWhitespaceAndComments
      Src: /src/raksha/src/ir/ir_printer_test.cc:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_printer_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - EXPECT_EQ
    - raksha::ir::EliminateWhitespaceAndComments
    - ParseProgram
    linkageType: ''
    returnType: void
    signature: void TEST_P(IRParserPrinterRoundTripTest, IrPrinterRoundTripTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/operator_test.cc:26,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operator_test.cc:28,1
    - Dst: Operator::name
      Src: /src/raksha/src/ir/operator_test.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/operator_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Operator::name
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorTest, NameIsCorrectlySet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/operator_test.cc:26,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operator_test.cc:28,1
    - Dst: Operator::name
      Src: /src/raksha/src/ir/operator_test.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/operator_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Operator::name
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorTest, NameIsCorrectlySet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/operator_test.cc:26,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operator_test.cc:28,1
    - Dst: Operator::name
      Src: /src/raksha/src/ir/operator_test.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/operator_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Operator::name
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorTest, NameIsCorrectlySet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/operator_test.cc:26,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operator_test.cc:28,1
    - Dst: Operator::name
      Src: /src/raksha/src/ir/operator_test.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/operator_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Operator::name
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperatorTest, NameIsCorrectlySet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:27,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:27,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:28,1
    - Dst: name
      Src: /src/raksha/src/ir/ir_context_test.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::make_unique<Operator>
    - IRContext::RegisterOperator
    - name
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, RegisterOperatorReturnsRegisteredOp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:34,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:34,1
    - Dst: IRContext::GetOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:35,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/ir_context_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:37,1
    - Dst: Operator*::name
      Src: /src/raksha/src/ir/ir_context_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:38,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_context_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Operator*::name
    - IRContext::RegisterOperator
    - IRContext::GetOperator
    - std::addressof
    - std::make_unique<Operator>
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, GetOperatorReturnsRegisteredOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:43,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:43,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:44,1
    - Dst: IRContext::IsRegisteredOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:44,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/ir/ir_context_test.cc:45,1
    - Dst: IRContext::IsRegisteredOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - IRContext::RegisterOperator
    - EXPECT_TRUE
    - EXPECT_FALSE
    - IRContext::IsRegisteredOperator
    - std::make_unique<Operator>
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, IsRegisteredOperatorReturnsCorrectValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:50,1
    - Dst: IRContext::GetOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IRContext::GetOperator
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, GetOperatorReturnsNullptrForUnregisteredOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:55,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:55,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:56,1
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:57,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - std::make_unique<Operator>
    - IRContext::RegisterOperator
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextDeathTest, DuplicateOperatorRegistrationCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:73,1
    - Dst: IsRegisteredOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:73,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:74,1
    - Dst: IsRegisteredOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:74,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/ir/ir_context_test.cc:75,1
    - Dst: IsRegisteredOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - IsRegisteredOperator
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, SeededOperatorsAreRegistered)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:79,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:80,1
    - Dst: testing::NotNull
      Src: /src/raksha/src/ir/ir_context_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:81,1
    - Dst: auto::name
      Src: /src/raksha/src/ir/ir_context_test.cc:81,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:83,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:84,1
    - Dst: testing::NotNull
      Src: /src/raksha/src/ir/ir_context_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:85,1
    - Dst: auto::name
      Src: /src/raksha/src/ir/ir_context_test.cc:85,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:87,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:87,1
    - Dst: testing::IsNull
      Src: /src/raksha/src/ir/ir_context_test.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 88
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetOperator
    - testing::IsNull
    - EXPECT_THAT
    - testing::NotNull
    - auto::name
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, GetSeededOperators)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Operator
      Src: /src/raksha/src/ir/ir_context_test.cc:91,1
    - Dst: Operator
      Src: /src/raksha/src/ir/ir_context_test.cc:91,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:92,1
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:94,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:94,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:97,1
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:99,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:102,1
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:103,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 106
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IRContext::RegisterOperator
    - EXPECT_DEATH
    - std::make_unique<Operator>
    - Operator
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, DoubleRegisterSeededOperatorsFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::type_factory
      Src: /src/raksha/src/ir/ir_context_test.cc:110,1
    - Dst: IRContext::RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:112,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:113,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:114,1
    - Dst: name
      Src: /src/raksha/src/ir/ir_context_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:115,1
    - Dst: type
      Src: /src/raksha/src/ir/ir_context_test.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - type
    - EXPECT_EQ
    - IRContext::type_factory
    - IRContext::RegisterStorage
    - name
    - std::make_unique<Storage>
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, RegisterStorageReturnsRegisteredStorage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::type_factory
      Src: /src/raksha/src/ir/ir_context_test.cc:120,1
    - Dst: IRContext::RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:122,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:123,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:123,1
    - Dst: IRContext::GetStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:124,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/ir_context_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:126,1
    - Dst: Storage*::name
      Src: /src/raksha/src/ir/ir_context_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:127,1
    - Dst: Storage*::type
      Src: /src/raksha/src/ir/ir_context_test.cc:127,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:129,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_context_test.cc:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IRContext::type_factory
    - IRContext::RegisterStorage
    - std::addressof
    - std::make_unique<Storage>
    - Storage*::type
    - IRContext::GetStorage
    - MakePrimitiveType
    - Storage*::name
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, GetStorageReturnsRegisteredStorage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::type_factory
      Src: /src/raksha/src/ir/ir_context_test.cc:134,1
    - Dst: IRContext::RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:135,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:136,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:136,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:137,1
    - Dst: IRContext::IsRegisteredStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:137,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/ir/ir_context_test.cc:138,1
    - Dst: IRContext::IsRegisteredStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - IRContext::type_factory
    - IRContext::RegisterStorage
    - EXPECT_TRUE
    - IRContext::IsRegisteredStorage
    - EXPECT_FALSE
    - std::make_unique<Storage>
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, IsRegisteredStorageReturnsCorrectValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Storage
      Src: /src/raksha/src/ir/ir_context_test.cc:145,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:145,1
    - Dst: Storage
      Src: /src/raksha/src/ir/ir_context_test.cc:146,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:146,1
    - Dst: std::vector<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:147,1
    - Dst: std::make_move_iterator
      Src: /src/raksha/src/ir/ir_context_test.cc:148,1
    - Dst: std::begin
      Src: /src/raksha/src/ir/ir_context_test.cc:148,1
    - Dst: std::make_move_iterator
      Src: /src/raksha/src/ir/ir_context_test.cc:149,1
    - Dst: std::end
      Src: /src/raksha/src/ir/ir_context_test.cc:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: raksha::ir::SeededStorageTest::SeededStorageTest
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - std::begin
    - std::end
    - std::make_move_iterator
    - MakePrimitiveType
    - std::vector<Storage>
    - Storage
    linkageType: ''
    returnType: void
    signature: void SeededStorageTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:161,1
    - Dst: IsRegisteredStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:161,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:162,1
    - Dst: IsRegisteredStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:162,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/ir/ir_context_test.cc:163,1
    - Dst: IsRegisteredStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - IsRegisteredStorage
    linkageType: ''
    returnType: void
    signature: void TEST_F(SeededStorageTest, SeededStoragesAreRegistered)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:167,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:168,1
    - Dst: testing::NotNull
      Src: /src/raksha/src/ir/ir_context_test.cc:168,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:169,1
    - Dst: Storage*::name
      Src: /src/raksha/src/ir/ir_context_test.cc:169,1
    - Dst: GetStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:171,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:172,1
    - Dst: testing::NotNull
      Src: /src/raksha/src/ir/ir_context_test.cc:172,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:173,1
    - Dst: Storage*::name
      Src: /src/raksha/src/ir/ir_context_test.cc:173,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:175,1
    - Dst: GetStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:175,1
    - Dst: testing::IsNull
      Src: /src/raksha/src/ir/ir_context_test.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetStorage
    - testing::IsNull
    - EXPECT_THAT
    - testing::NotNull
    - Storage*::name
    linkageType: ''
    returnType: void
    signature: void TEST_F(SeededStorageTest, GetSeededStorages)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:179,1
    - Dst: RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:181,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:181,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:182,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:185,1
    - Dst: RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:187,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:187,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:188,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:191,1
    - Dst: RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:191,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:192,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 196
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_DEATH
    - std::make_unique<Storage>
    - MakePrimitiveType
    - RegisterStorage
    linkageType: ''
    returnType: void
    signature: void TEST_F(SeededStorageTest, DoubleRegisterSeededStorages)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:200,1
    - Dst: IRContext::GetStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IRContext::GetStorage
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextDeathTest, GetStorageReturnsNullptrForUnregisteredStorage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::type_factory
      Src: /src/raksha/src/ir/ir_context_test.cc:205,1
    - Dst: IRContext::RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:206,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:207,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:207,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:208,1
    - Dst: IRContext::RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:210,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:210,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 214
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - IRContext::type_factory
    - IRContext::RegisterStorage
    - EXPECT_DEATH
    - std::make_unique<Storage>
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextDeathTest, DuplicateStorageRegistrationCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:27,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:27,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:28,1
    - Dst: name
      Src: /src/raksha/src/ir/ir_context_test.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::make_unique<Operator>
    - IRContext::RegisterOperator
    - name
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, RegisterOperatorReturnsRegisteredOp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:34,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:34,1
    - Dst: IRContext::GetOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:35,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/ir_context_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:37,1
    - Dst: Operator*::name
      Src: /src/raksha/src/ir/ir_context_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:38,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_context_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Operator*::name
    - IRContext::RegisterOperator
    - IRContext::GetOperator
    - std::addressof
    - std::make_unique<Operator>
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, GetOperatorReturnsRegisteredOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:43,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:43,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:44,1
    - Dst: IRContext::IsRegisteredOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:44,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/ir/ir_context_test.cc:45,1
    - Dst: IRContext::IsRegisteredOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - IRContext::RegisterOperator
    - EXPECT_TRUE
    - EXPECT_FALSE
    - IRContext::IsRegisteredOperator
    - std::make_unique<Operator>
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, IsRegisteredOperatorReturnsCorrectValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:50,1
    - Dst: IRContext::GetOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IRContext::GetOperator
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, GetOperatorReturnsNullptrForUnregisteredOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:55,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:55,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:56,1
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:57,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - std::make_unique<Operator>
    - IRContext::RegisterOperator
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextDeathTest, DuplicateOperatorRegistrationCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:73,1
    - Dst: IsRegisteredOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:73,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:74,1
    - Dst: IsRegisteredOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:74,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/ir/ir_context_test.cc:75,1
    - Dst: IsRegisteredOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - IsRegisteredOperator
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, SeededOperatorsAreRegistered)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:79,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:80,1
    - Dst: testing::NotNull
      Src: /src/raksha/src/ir/ir_context_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:81,1
    - Dst: auto::name
      Src: /src/raksha/src/ir/ir_context_test.cc:81,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:83,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:84,1
    - Dst: testing::NotNull
      Src: /src/raksha/src/ir/ir_context_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:85,1
    - Dst: auto::name
      Src: /src/raksha/src/ir/ir_context_test.cc:85,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:87,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:87,1
    - Dst: testing::IsNull
      Src: /src/raksha/src/ir/ir_context_test.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 88
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetOperator
    - testing::IsNull
    - EXPECT_THAT
    - testing::NotNull
    - auto::name
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, GetSeededOperators)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Operator
      Src: /src/raksha/src/ir/ir_context_test.cc:91,1
    - Dst: Operator
      Src: /src/raksha/src/ir/ir_context_test.cc:91,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:92,1
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:94,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:94,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:97,1
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:99,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:102,1
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:103,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 106
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IRContext::RegisterOperator
    - EXPECT_DEATH
    - std::make_unique<Operator>
    - Operator
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, DoubleRegisterSeededOperatorsFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::type_factory
      Src: /src/raksha/src/ir/ir_context_test.cc:110,1
    - Dst: IRContext::RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:112,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:113,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:114,1
    - Dst: name
      Src: /src/raksha/src/ir/ir_context_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:115,1
    - Dst: type
      Src: /src/raksha/src/ir/ir_context_test.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - type
    - EXPECT_EQ
    - IRContext::type_factory
    - IRContext::RegisterStorage
    - name
    - std::make_unique<Storage>
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, RegisterStorageReturnsRegisteredStorage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::type_factory
      Src: /src/raksha/src/ir/ir_context_test.cc:120,1
    - Dst: IRContext::RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:122,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:123,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:123,1
    - Dst: IRContext::GetStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:124,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/ir_context_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:126,1
    - Dst: Storage*::name
      Src: /src/raksha/src/ir/ir_context_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:127,1
    - Dst: Storage*::type
      Src: /src/raksha/src/ir/ir_context_test.cc:127,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:129,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_context_test.cc:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IRContext::type_factory
    - IRContext::RegisterStorage
    - std::addressof
    - std::make_unique<Storage>
    - Storage*::type
    - IRContext::GetStorage
    - MakePrimitiveType
    - Storage*::name
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, GetStorageReturnsRegisteredStorage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::type_factory
      Src: /src/raksha/src/ir/ir_context_test.cc:134,1
    - Dst: IRContext::RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:135,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:136,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:136,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:137,1
    - Dst: IRContext::IsRegisteredStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:137,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/ir/ir_context_test.cc:138,1
    - Dst: IRContext::IsRegisteredStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - IRContext::type_factory
    - IRContext::RegisterStorage
    - EXPECT_TRUE
    - IRContext::IsRegisteredStorage
    - EXPECT_FALSE
    - std::make_unique<Storage>
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, IsRegisteredStorageReturnsCorrectValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Storage
      Src: /src/raksha/src/ir/ir_context_test.cc:145,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:145,1
    - Dst: Storage
      Src: /src/raksha/src/ir/ir_context_test.cc:146,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:146,1
    - Dst: std::vector<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:147,1
    - Dst: std::make_move_iterator
      Src: /src/raksha/src/ir/ir_context_test.cc:148,1
    - Dst: std::begin
      Src: /src/raksha/src/ir/ir_context_test.cc:148,1
    - Dst: std::make_move_iterator
      Src: /src/raksha/src/ir/ir_context_test.cc:149,1
    - Dst: std::end
      Src: /src/raksha/src/ir/ir_context_test.cc:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: raksha::ir::SeededStorageTest::SeededStorageTest
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - std::begin
    - std::end
    - std::make_move_iterator
    - MakePrimitiveType
    - std::vector<Storage>
    - Storage
    linkageType: ''
    returnType: void
    signature: void SeededStorageTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:161,1
    - Dst: IsRegisteredStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:161,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:162,1
    - Dst: IsRegisteredStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:162,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/ir/ir_context_test.cc:163,1
    - Dst: IsRegisteredStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - IsRegisteredStorage
    linkageType: ''
    returnType: void
    signature: void TEST_F(SeededStorageTest, SeededStoragesAreRegistered)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:167,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:168,1
    - Dst: testing::NotNull
      Src: /src/raksha/src/ir/ir_context_test.cc:168,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:169,1
    - Dst: Storage*::name
      Src: /src/raksha/src/ir/ir_context_test.cc:169,1
    - Dst: GetStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:171,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:172,1
    - Dst: testing::NotNull
      Src: /src/raksha/src/ir/ir_context_test.cc:172,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:173,1
    - Dst: Storage*::name
      Src: /src/raksha/src/ir/ir_context_test.cc:173,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:175,1
    - Dst: GetStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:175,1
    - Dst: testing::IsNull
      Src: /src/raksha/src/ir/ir_context_test.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetStorage
    - testing::IsNull
    - EXPECT_THAT
    - testing::NotNull
    - Storage*::name
    linkageType: ''
    returnType: void
    signature: void TEST_F(SeededStorageTest, GetSeededStorages)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:179,1
    - Dst: RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:181,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:181,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:182,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:185,1
    - Dst: RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:187,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:187,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:188,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:191,1
    - Dst: RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:191,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:192,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 196
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_DEATH
    - std::make_unique<Storage>
    - MakePrimitiveType
    - RegisterStorage
    linkageType: ''
    returnType: void
    signature: void TEST_F(SeededStorageTest, DoubleRegisterSeededStorages)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:200,1
    - Dst: IRContext::GetStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IRContext::GetStorage
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextDeathTest, GetStorageReturnsNullptrForUnregisteredStorage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::type_factory
      Src: /src/raksha/src/ir/ir_context_test.cc:205,1
    - Dst: IRContext::RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:206,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:207,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:207,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:208,1
    - Dst: IRContext::RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:210,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:210,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 214
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - IRContext::type_factory
    - IRContext::RegisterStorage
    - EXPECT_DEATH
    - std::make_unique<Storage>
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextDeathTest, DuplicateStorageRegistrationCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:27,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:27,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:28,1
    - Dst: name
      Src: /src/raksha/src/ir/ir_context_test.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::make_unique<Operator>
    - IRContext::RegisterOperator
    - name
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, RegisterOperatorReturnsRegisteredOp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:34,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:34,1
    - Dst: IRContext::GetOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:35,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/ir_context_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:37,1
    - Dst: Operator*::name
      Src: /src/raksha/src/ir/ir_context_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:38,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_context_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Operator*::name
    - IRContext::RegisterOperator
    - IRContext::GetOperator
    - std::addressof
    - std::make_unique<Operator>
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, GetOperatorReturnsRegisteredOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:43,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:43,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:44,1
    - Dst: IRContext::IsRegisteredOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:44,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/ir/ir_context_test.cc:45,1
    - Dst: IRContext::IsRegisteredOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - IRContext::RegisterOperator
    - EXPECT_TRUE
    - EXPECT_FALSE
    - IRContext::IsRegisteredOperator
    - std::make_unique<Operator>
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, IsRegisteredOperatorReturnsCorrectValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:50,1
    - Dst: IRContext::GetOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IRContext::GetOperator
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, GetOperatorReturnsNullptrForUnregisteredOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:55,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:55,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:56,1
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:57,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - std::make_unique<Operator>
    - IRContext::RegisterOperator
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextDeathTest, DuplicateOperatorRegistrationCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:73,1
    - Dst: IsRegisteredOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:73,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:74,1
    - Dst: IsRegisteredOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:74,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/ir/ir_context_test.cc:75,1
    - Dst: IsRegisteredOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - IsRegisteredOperator
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, SeededOperatorsAreRegistered)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:79,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:80,1
    - Dst: testing::NotNull
      Src: /src/raksha/src/ir/ir_context_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:81,1
    - Dst: auto::name
      Src: /src/raksha/src/ir/ir_context_test.cc:81,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:83,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:84,1
    - Dst: testing::NotNull
      Src: /src/raksha/src/ir/ir_context_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:85,1
    - Dst: auto::name
      Src: /src/raksha/src/ir/ir_context_test.cc:85,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:87,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:87,1
    - Dst: testing::IsNull
      Src: /src/raksha/src/ir/ir_context_test.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 88
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetOperator
    - testing::IsNull
    - EXPECT_THAT
    - testing::NotNull
    - auto::name
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, GetSeededOperators)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Operator
      Src: /src/raksha/src/ir/ir_context_test.cc:91,1
    - Dst: Operator
      Src: /src/raksha/src/ir/ir_context_test.cc:91,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:92,1
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:94,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:94,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:97,1
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:99,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:102,1
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:103,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 106
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IRContext::RegisterOperator
    - EXPECT_DEATH
    - std::make_unique<Operator>
    - Operator
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, DoubleRegisterSeededOperatorsFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::type_factory
      Src: /src/raksha/src/ir/ir_context_test.cc:110,1
    - Dst: IRContext::RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:112,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:113,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:114,1
    - Dst: name
      Src: /src/raksha/src/ir/ir_context_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:115,1
    - Dst: type
      Src: /src/raksha/src/ir/ir_context_test.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - type
    - EXPECT_EQ
    - IRContext::type_factory
    - IRContext::RegisterStorage
    - name
    - std::make_unique<Storage>
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, RegisterStorageReturnsRegisteredStorage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::type_factory
      Src: /src/raksha/src/ir/ir_context_test.cc:120,1
    - Dst: IRContext::RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:122,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:123,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:123,1
    - Dst: IRContext::GetStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:124,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/ir_context_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:126,1
    - Dst: Storage*::name
      Src: /src/raksha/src/ir/ir_context_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:127,1
    - Dst: Storage*::type
      Src: /src/raksha/src/ir/ir_context_test.cc:127,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:129,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_context_test.cc:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IRContext::type_factory
    - IRContext::RegisterStorage
    - std::addressof
    - std::make_unique<Storage>
    - Storage*::type
    - IRContext::GetStorage
    - MakePrimitiveType
    - Storage*::name
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, GetStorageReturnsRegisteredStorage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::type_factory
      Src: /src/raksha/src/ir/ir_context_test.cc:134,1
    - Dst: IRContext::RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:135,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:136,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:136,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:137,1
    - Dst: IRContext::IsRegisteredStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:137,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/ir/ir_context_test.cc:138,1
    - Dst: IRContext::IsRegisteredStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - IRContext::type_factory
    - IRContext::RegisterStorage
    - EXPECT_TRUE
    - IRContext::IsRegisteredStorage
    - EXPECT_FALSE
    - std::make_unique<Storage>
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, IsRegisteredStorageReturnsCorrectValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Storage
      Src: /src/raksha/src/ir/ir_context_test.cc:145,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:145,1
    - Dst: Storage
      Src: /src/raksha/src/ir/ir_context_test.cc:146,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:146,1
    - Dst: std::vector<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:147,1
    - Dst: std::make_move_iterator
      Src: /src/raksha/src/ir/ir_context_test.cc:148,1
    - Dst: std::begin
      Src: /src/raksha/src/ir/ir_context_test.cc:148,1
    - Dst: std::make_move_iterator
      Src: /src/raksha/src/ir/ir_context_test.cc:149,1
    - Dst: std::end
      Src: /src/raksha/src/ir/ir_context_test.cc:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: raksha::ir::SeededStorageTest::SeededStorageTest
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - std::begin
    - std::end
    - std::make_move_iterator
    - MakePrimitiveType
    - std::vector<Storage>
    - Storage
    linkageType: ''
    returnType: void
    signature: void SeededStorageTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:161,1
    - Dst: IsRegisteredStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:161,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:162,1
    - Dst: IsRegisteredStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:162,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/ir/ir_context_test.cc:163,1
    - Dst: IsRegisteredStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - IsRegisteredStorage
    linkageType: ''
    returnType: void
    signature: void TEST_F(SeededStorageTest, SeededStoragesAreRegistered)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:167,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:168,1
    - Dst: testing::NotNull
      Src: /src/raksha/src/ir/ir_context_test.cc:168,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:169,1
    - Dst: Storage*::name
      Src: /src/raksha/src/ir/ir_context_test.cc:169,1
    - Dst: GetStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:171,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:172,1
    - Dst: testing::NotNull
      Src: /src/raksha/src/ir/ir_context_test.cc:172,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:173,1
    - Dst: Storage*::name
      Src: /src/raksha/src/ir/ir_context_test.cc:173,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:175,1
    - Dst: GetStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:175,1
    - Dst: testing::IsNull
      Src: /src/raksha/src/ir/ir_context_test.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetStorage
    - testing::IsNull
    - EXPECT_THAT
    - testing::NotNull
    - Storage*::name
    linkageType: ''
    returnType: void
    signature: void TEST_F(SeededStorageTest, GetSeededStorages)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:179,1
    - Dst: RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:181,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:181,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:182,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:185,1
    - Dst: RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:187,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:187,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:188,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:191,1
    - Dst: RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:191,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:192,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 196
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_DEATH
    - std::make_unique<Storage>
    - MakePrimitiveType
    - RegisterStorage
    linkageType: ''
    returnType: void
    signature: void TEST_F(SeededStorageTest, DoubleRegisterSeededStorages)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:200,1
    - Dst: IRContext::GetStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IRContext::GetStorage
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextDeathTest, GetStorageReturnsNullptrForUnregisteredStorage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::type_factory
      Src: /src/raksha/src/ir/ir_context_test.cc:205,1
    - Dst: IRContext::RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:206,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:207,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:207,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:208,1
    - Dst: IRContext::RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:210,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:210,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 214
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - IRContext::type_factory
    - IRContext::RegisterStorage
    - EXPECT_DEATH
    - std::make_unique<Storage>
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextDeathTest, DuplicateStorageRegistrationCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:27,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:27,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:28,1
    - Dst: name
      Src: /src/raksha/src/ir/ir_context_test.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::make_unique<Operator>
    - IRContext::RegisterOperator
    - name
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, RegisterOperatorReturnsRegisteredOp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:34,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:34,1
    - Dst: IRContext::GetOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:35,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/ir_context_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:37,1
    - Dst: Operator*::name
      Src: /src/raksha/src/ir/ir_context_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:38,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_context_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Operator*::name
    - IRContext::RegisterOperator
    - IRContext::GetOperator
    - std::addressof
    - std::make_unique<Operator>
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, GetOperatorReturnsRegisteredOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:43,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:43,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:44,1
    - Dst: IRContext::IsRegisteredOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:44,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/ir/ir_context_test.cc:45,1
    - Dst: IRContext::IsRegisteredOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - IRContext::RegisterOperator
    - EXPECT_TRUE
    - EXPECT_FALSE
    - IRContext::IsRegisteredOperator
    - std::make_unique<Operator>
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, IsRegisteredOperatorReturnsCorrectValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:50,1
    - Dst: IRContext::GetOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IRContext::GetOperator
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, GetOperatorReturnsNullptrForUnregisteredOperator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:55,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:55,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:56,1
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:57,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - std::make_unique<Operator>
    - IRContext::RegisterOperator
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextDeathTest, DuplicateOperatorRegistrationCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:73,1
    - Dst: IsRegisteredOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:73,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:74,1
    - Dst: IsRegisteredOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:74,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/ir/ir_context_test.cc:75,1
    - Dst: IsRegisteredOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - IsRegisteredOperator
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, SeededOperatorsAreRegistered)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:79,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:80,1
    - Dst: testing::NotNull
      Src: /src/raksha/src/ir/ir_context_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:81,1
    - Dst: auto::name
      Src: /src/raksha/src/ir/ir_context_test.cc:81,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:83,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:84,1
    - Dst: testing::NotNull
      Src: /src/raksha/src/ir/ir_context_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:85,1
    - Dst: auto::name
      Src: /src/raksha/src/ir/ir_context_test.cc:85,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:87,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:87,1
    - Dst: testing::IsNull
      Src: /src/raksha/src/ir/ir_context_test.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 88
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetOperator
    - testing::IsNull
    - EXPECT_THAT
    - testing::NotNull
    - auto::name
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, GetSeededOperators)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Operator
      Src: /src/raksha/src/ir/ir_context_test.cc:91,1
    - Dst: Operator
      Src: /src/raksha/src/ir/ir_context_test.cc:91,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:92,1
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:94,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:94,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:97,1
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:99,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:102,1
    - Dst: IRContext::RegisterOperator
      Src: /src/raksha/src/ir/ir_context_test.cc:103,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/ir_context_test.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 106
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IRContext::RegisterOperator
    - EXPECT_DEATH
    - std::make_unique<Operator>
    - Operator
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, DoubleRegisterSeededOperatorsFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::type_factory
      Src: /src/raksha/src/ir/ir_context_test.cc:110,1
    - Dst: IRContext::RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:112,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:113,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:114,1
    - Dst: name
      Src: /src/raksha/src/ir/ir_context_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:115,1
    - Dst: type
      Src: /src/raksha/src/ir/ir_context_test.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - type
    - EXPECT_EQ
    - IRContext::type_factory
    - IRContext::RegisterStorage
    - name
    - std::make_unique<Storage>
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, RegisterStorageReturnsRegisteredStorage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::type_factory
      Src: /src/raksha/src/ir/ir_context_test.cc:120,1
    - Dst: IRContext::RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:122,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:123,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:123,1
    - Dst: IRContext::GetStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:124,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/ir_context_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:126,1
    - Dst: Storage*::name
      Src: /src/raksha/src/ir/ir_context_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:127,1
    - Dst: Storage*::type
      Src: /src/raksha/src/ir/ir_context_test.cc:127,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:129,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/ir_context_test.cc:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IRContext::type_factory
    - IRContext::RegisterStorage
    - std::addressof
    - std::make_unique<Storage>
    - Storage*::type
    - IRContext::GetStorage
    - MakePrimitiveType
    - Storage*::name
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, GetStorageReturnsRegisteredStorage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::type_factory
      Src: /src/raksha/src/ir/ir_context_test.cc:134,1
    - Dst: IRContext::RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:135,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:136,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:136,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:137,1
    - Dst: IRContext::IsRegisteredStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:137,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/ir/ir_context_test.cc:138,1
    - Dst: IRContext::IsRegisteredStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - IRContext::type_factory
    - IRContext::RegisterStorage
    - EXPECT_TRUE
    - IRContext::IsRegisteredStorage
    - EXPECT_FALSE
    - std::make_unique<Storage>
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextTest, IsRegisteredStorageReturnsCorrectValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Storage
      Src: /src/raksha/src/ir/ir_context_test.cc:145,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:145,1
    - Dst: Storage
      Src: /src/raksha/src/ir/ir_context_test.cc:146,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:146,1
    - Dst: std::vector<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:147,1
    - Dst: std::make_move_iterator
      Src: /src/raksha/src/ir/ir_context_test.cc:148,1
    - Dst: std::begin
      Src: /src/raksha/src/ir/ir_context_test.cc:148,1
    - Dst: std::make_move_iterator
      Src: /src/raksha/src/ir/ir_context_test.cc:149,1
    - Dst: std::end
      Src: /src/raksha/src/ir/ir_context_test.cc:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: raksha::ir::SeededStorageTest::SeededStorageTest
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - std::begin
    - std::end
    - std::make_move_iterator
    - MakePrimitiveType
    - std::vector<Storage>
    - Storage
    linkageType: ''
    returnType: void
    signature: void SeededStorageTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:161,1
    - Dst: IsRegisteredStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:161,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/ir_context_test.cc:162,1
    - Dst: IsRegisteredStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:162,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/ir/ir_context_test.cc:163,1
    - Dst: IsRegisteredStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - IsRegisteredStorage
    linkageType: ''
    returnType: void
    signature: void TEST_F(SeededStorageTest, SeededStoragesAreRegistered)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:167,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:168,1
    - Dst: testing::NotNull
      Src: /src/raksha/src/ir/ir_context_test.cc:168,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:169,1
    - Dst: Storage*::name
      Src: /src/raksha/src/ir/ir_context_test.cc:169,1
    - Dst: GetStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:171,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:172,1
    - Dst: testing::NotNull
      Src: /src/raksha/src/ir/ir_context_test.cc:172,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:173,1
    - Dst: Storage*::name
      Src: /src/raksha/src/ir/ir_context_test.cc:173,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/ir_context_test.cc:175,1
    - Dst: GetStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:175,1
    - Dst: testing::IsNull
      Src: /src/raksha/src/ir/ir_context_test.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetStorage
    - testing::IsNull
    - EXPECT_THAT
    - testing::NotNull
    - Storage*::name
    linkageType: ''
    returnType: void
    signature: void TEST_F(SeededStorageTest, GetSeededStorages)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:179,1
    - Dst: RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:181,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:181,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:182,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:185,1
    - Dst: RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:187,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:187,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:188,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:191,1
    - Dst: RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:191,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:192,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 196
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_DEATH
    - std::make_unique<Storage>
    - MakePrimitiveType
    - RegisterStorage
    linkageType: ''
    returnType: void
    signature: void TEST_F(SeededStorageTest, DoubleRegisterSeededStorages)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_context_test.cc:200,1
    - Dst: IRContext::GetStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IRContext::GetStorage
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextDeathTest, GetStorageReturnsNullptrForUnregisteredStorage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::type_factory
      Src: /src/raksha/src/ir/ir_context_test.cc:205,1
    - Dst: IRContext::RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:206,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:207,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:207,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ir_context_test.cc:208,1
    - Dst: IRContext::RegisterStorage
      Src: /src/raksha/src/ir/ir_context_test.cc:210,1
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/ir_context_test.cc:210,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/ir_context_test.cc:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 214
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/ir_context_test.cc
    functionUses: 0
    functionsReached:
    - IRContext::type_factory
    - IRContext::RegisterStorage
    - EXPECT_DEATH
    - std::make_unique<Storage>
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST(IRContextDeathTest, DuplicateStorageRegistrationCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Operator
      Src: /src/raksha/src/ir/block_builder_test.cc:38,1
    - Dst: Operator
      Src: /src/raksha/src/ir/block_builder_test.cc:39,1
    - Dst: Operator
      Src: /src/raksha/src/ir/block_builder_test.cc:40,1
    - Dst: Operator
      Src: /src/raksha/src/ir/block_builder_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: raksha::ir::BlockBuilderTest::BlockBuilderTest
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - Operator
    linkageType: ''
    returnType: void
    signature: void BlockBuilderTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterSchema
      Src: /src/raksha/src/ir/block_builder_test.cc:47,1
    - Dst: std::string
      Src: /src/raksha/src/ir/block_builder_test.cc:47,1
    - Dst: MakeEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - schema_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: raksha::ir::BlockBuilderTest::MakeTestEntityType
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - RegisterSchema
    - std::string
    - MakeEntityType
    linkageType: ''
    returnType: types::Type
    signature: types::Type MakeTestEntityType(absl::string_view schema_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::BlockBuilderTest::MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: raksha::ir::BlockBuilderTest::MakePrimitiveType
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 1
    functionsReached:
    - raksha::ir::BlockBuilderTest::MakePrimitiveType
    linkageType: ''
    returnType: types::Type
    signature: types::Type MakePrimitiveType()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:62,1
    - Dst: Block::parent_module
      Src: /src/raksha/src/ir/block_builder_test.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - Block::parent_module
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, DefaultConstructorInitilizesModuleToNullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindDecl
      Src: /src/raksha/src/ir/block_builder_test.cc:71,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/block_builder_test.cc:72,1
    - Dst: DataDecl*::type
      Src: /src/raksha/src/ir/block_builder_test.cc:73,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:74,1
    - Dst: kind
      Src: /src/raksha/src/ir/block_builder_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:75,1
    - Dst: static_cast<const types::EntityType&>
      Src: /src/raksha/src/ir/block_builder_test.cc:76,1
    - Dst: FindDecl
      Src: /src/raksha/src/ir/block_builder_test.cc:78,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/block_builder_test.cc:79,1
    - Dst: DataDecl*::type
      Src: /src/raksha/src/ir/block_builder_test.cc:80,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:81,1
    - Dst: kind
      Src: /src/raksha/src/ir/block_builder_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ' decls'
    - entity_key
    - primitive_key
    - schema_name
    argTypes:
    - DataDeclCollection
    - absl::string_view
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 82
    functionName: raksha::ir::CheckExpectedDecls
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - kind
    - EXPECT_EQ
    - static_cast<const types::EntityType&>
    - FindDecl
    - ASSERT_EQ
    - DataDecl*::type
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void CheckExpectedDecls(const DataDeclCollection& decls,\n                        absl::string_view
      entity_key,\n                        absl::string_view primitive_key,\n                        absl::string_view
      schema_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::AddInput
      Src: /src/raksha/src/ir/block_builder_test.cc:86,1
    - Dst: MakeTestEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:86,1
    - Dst: BlockBuilder::AddInput
      Src: /src/raksha/src/ir/block_builder_test.cc:87,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:87,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:88,1
    - Dst: raksha::ir::CheckExpectedDecls
      Src: /src/raksha/src/ir/block_builder_test.cc:89,1
    - Dst: auto::inputs
      Src: /src/raksha/src/ir/block_builder_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - MakeTestEntityType
    - BlockBuilder::AddInput
    - MakePrimitiveType
    - BlockBuilder::build
    - auto::inputs
    - raksha::ir::CheckExpectedDecls
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddInputUpdatesInputDecls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:96,1
    - Dst: MakeTestEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:96,1
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:97,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:97,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:98,1
    - Dst: raksha::ir::CheckExpectedDecls
      Src: /src/raksha/src/ir/block_builder_test.cc:99,1
    - Dst: auto::outputs
      Src: /src/raksha/src/ir/block_builder_test.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - MakeTestEntityType
    - auto::outputs
    - MakePrimitiveType
    - BlockBuilder::build
    - raksha::ir::CheckExpectedDecls
    - BlockBuilder::AddOutput
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddOutputUpdatesOutputDecls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/block_builder_test.cc:107,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:107,1
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:108,1
    - Dst: MakeTestEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:108,1
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:109,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:109,1
    - Dst: BlockBuilder::AddResult
      Src: /src/raksha/src/ir/block_builder_test.cc:110,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:110,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/block_builder_test.cc:110,1
    - Dst: BlockBuilder::AddResult
      Src: /src/raksha/src/ir/block_builder_test.cc:111,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:111,1
    - Dst: raksha::ir::value::StoredValue::StoredValue
      Src: /src/raksha/src/ir/block_builder_test.cc:111,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:112,1
    - Dst: auto::results
      Src: /src/raksha/src/ir/block_builder_test.cc:113,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:117,1
    - Dst: count
      Src: /src/raksha/src/ir/block_builder_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:118,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/ir/block_builder_test.cc:118,1
    - Dst: at
      Src: /src/raksha/src/ir/block_builder_test.cc:118,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:119,1
    - Dst: count
      Src: /src/raksha/src/ir/block_builder_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:120,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/ir/block_builder_test.cc:120,1
    - Dst: at
      Src: /src/raksha/src/ir/block_builder_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - MakeTestEntityType
    - EXPECT_EQ
    - Value
    - raksha::ir::value::StoredValue::StoredValue
    - BlockBuilder::AddResult
    - count
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - std::make_unique<Storage>
    - BlockBuilder::build
    - ASSERT_EQ
    - MakePrimitiveType
    - at
    - BlockBuilder::AddOutput
    - auto::results
    - raksha::ir::ValueToString
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddResultsUpdatesResults)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:126,1
    - Dst: BlockBuilder::AddResult
      Src: /src/raksha/src/ir/block_builder_test.cc:126,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:126,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/block_builder_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - Value
    - BlockBuilder::AddResult
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderDeathTest, AddResultsVerifiesOutputIsDeclared)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:133,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:133,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:135,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:135,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:137,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:137,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:140,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:140,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:142,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:142,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:144,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:144,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:146,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/block_builder_test.cc:147,1
    - Dst: auto::operations
      Src: /src/raksha/src/ir/block_builder_test.cc:147,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/block_builder_test.cc:148,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:148,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:148,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:149,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:149,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:150,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 151
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - testing::ElementsAre
    - GetOperator
    - std::addressof
    - auto::operations
    - testing::Pointer
    - EXPECT_THAT
    - BlockBuilder::build
    - testing::Eq
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddOperationUpdatesOperationList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:156,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:156,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:158,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:158,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:160,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:160,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:163,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:163,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:163,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/block_builder_test.cc:164,1
    - Dst: ValueList
      Src: /src/raksha/src/ir/block_builder_test.cc:164,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:166,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:166,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:166,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/block_builder_test.cc:167,1
    - Dst: ValueList
      Src: /src/raksha/src/ir/block_builder_test.cc:167,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:169,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:169,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:169,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/block_builder_test.cc:170,1
    - Dst: ValueList
      Src: /src/raksha/src/ir/block_builder_test.cc:170,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:172,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/block_builder_test.cc:173,1
    - Dst: auto::operations
      Src: /src/raksha/src/ir/block_builder_test.cc:173,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/block_builder_test.cc:174,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:174,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:174,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:175,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:175,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:176,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 177
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - NamedAttributeMap
    - testing::ElementsAre
    - GetOperator
    - std::addressof
    - BlockBuilder::AddOperation
    - auto::operations
    - testing::Pointer
    - EXPECT_THAT
    - BlockBuilder::build
    - testing::Eq
    - ValueList
    - std::make_unique<Operation>
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddOperationOfUniquePtrUpdatesOperationList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::GetBlockPtr
      Src: /src/raksha/src/ir/block_builder_test.cc:181,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:183,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:183,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:184,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:184,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:184,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/block_builder_test.cc:185,1
    - Dst: ValueList
      Src: /src/raksha/src/ir/block_builder_test.cc:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - std::make_unique<Operation>
    - NamedAttributeMap
    - GetOperator
    - EXPECT_DEATH
    - BlockBuilder::GetBlockPtr
    - ValueList
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, SetParentPtrErrorsWithPredefinedParent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::AddImplementation
      Src: /src/raksha/src/ir/block_builder_test.cc:192,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:194,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:195,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:195,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:195,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:199,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/block_builder_test.cc:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 200
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - BlockBuilder::AddImplementation
    - auto::get
    - std::addressof
    - BlockBuilder::build
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddImplementationPassesSelfAndResultBlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::GetBlockPtr
      Src: /src/raksha/src/ir/block_builder_test.cc:207,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:208,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:209,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/block_builder_test.cc:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 210
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - BlockBuilder::GetBlockPtr
    - EXPECT_EQ
    - BlockBuilder::build
    - auto::get
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, GetBlockPtrReturnsCorrectBlockPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::GetBlockPtr
      Src: /src/raksha/src/ir/block_builder_test.cc:215,1
    - Dst: BlockBuilder::AddImplementation
      Src: /src/raksha/src/ir/block_builder_test.cc:216,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:218,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:219,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:219,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:222,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:224,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/block_builder_test.cc:224,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:225,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/block_builder_test.cc:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 226
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - BlockBuilder::AddImplementation
    - auto::get
    - std::addressof
    - BlockBuilder::build
    - BlockBuilder::GetBlockPtr
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddImplementationDoesNotChangeBlockAddress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::GetBlockPtr
      Src: /src/raksha/src/ir/block_builder_test.cc:230,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:232,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:232,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:233,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:234,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/block_builder_test.cc:235,1
    - Dst: auto::operations
      Src: /src/raksha/src/ir/block_builder_test.cc:235,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/block_builder_test.cc:236,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:236,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:236,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:237,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/block_builder_test.cc:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 238
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - EXPECT_EQ
    - testing::ElementsAre
    - GetOperator
    - auto::get
    - auto::operations
    - testing::Pointer
    - EXPECT_THAT
    - BlockBuilder::build
    - testing::Eq
    - BlockBuilder::GetBlockPtr
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddOperationDoesNotChangeBlockAddress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::AddImplementation
      Src: /src/raksha/src/ir/block_builder_test.cc:243,1
    - Dst: BlockBuilder::AddInput
      Src: /src/raksha/src/ir/block_builder_test.cc:245,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:245,1
    - Dst: BlockBuilder::AddInput
      Src: /src/raksha/src/ir/block_builder_test.cc:246,1
    - Dst: MakeTestEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:246,1
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:247,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:247,1
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:248,1
    - Dst: MakeTestEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:248,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:250,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:250,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:251,1
    - Dst: BlockBuilder::AddResult
      Src: /src/raksha/src/ir/block_builder_test.cc:252,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:252,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/block_builder_test.cc:252,1
    - Dst: SsaNames::AddID
      Src: /src/raksha/src/ir/block_builder_test.cc:253,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:253,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/block_builder_test.cc:253,1
    - Dst: BlockBuilder::AddResult
      Src: /src/raksha/src/ir/block_builder_test.cc:254,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:254,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/block_builder_test.cc:254,1
    - Dst: SsaNames::AddID
      Src: /src/raksha/src/ir/block_builder_test.cc:255,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:255,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/block_builder_test.cc:255,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:258,1
    - Dst: raksha::ir::CheckExpectedDecls
      Src: /src/raksha/src/ir/block_builder_test.cc:259,1
    - Dst: auto::inputs
      Src: /src/raksha/src/ir/block_builder_test.cc:259,1
    - Dst: raksha::ir::CheckExpectedDecls
      Src: /src/raksha/src/ir/block_builder_test.cc:262,1
    - Dst: auto::outputs
      Src: /src/raksha/src/ir/block_builder_test.cc:262,1
    - Dst: auto::results
      Src: /src/raksha/src/ir/block_builder_test.cc:265,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:266,1
    - Dst: count
      Src: /src/raksha/src/ir/block_builder_test.cc:266,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:269,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/ir/block_builder_test.cc:269,1
    - Dst: at
      Src: /src/raksha/src/ir/block_builder_test.cc:269,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:271,1
    - Dst: count
      Src: /src/raksha/src/ir/block_builder_test.cc:271,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:274,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/ir/block_builder_test.cc:274,1
    - Dst: at
      Src: /src/raksha/src/ir/block_builder_test.cc:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 276
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - auto::inputs
    - EXPECT_EQ
    - BlockBuilder::AddInput
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - BlockBuilder::AddImplementation
    - GetOperator
    - SsaNames::AddID
    - raksha::ir::CheckExpectedDecls
    - ABSL_DIE_IF_NULL
    - BlockBuilder::AddResult
    - ASSERT_EQ
    - at
    - BlockBuilder::AddOutput
    - MakeTestEntityType
    - Value
    - auto::outputs
    - count
    - BlockBuilder::build
    - MakePrimitiveType
    - BlockBuilder::AddOperation
    - auto::results
    - raksha::ir::ValueToString
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddImplementationMakingMultipleUpdates)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsRegisteredOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:284,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:286,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:288,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:288,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/block_builder_test.cc:288,1
    - Dst: ValueList
      Src: /src/raksha/src/ir/block_builder_test.cc:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - parent_block
    - ' context'
    - op_name
    argTypes:
    - Block*
    - IRContext
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 290
    functionName: raksha::ir::TestOperation::Create
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - NamedAttributeMap
    - IsRegisteredOperator
    - GetOperator
    - ValueList
    - std::make_unique<Operation>
    linkageType: ''
    returnType: std::unique_ptr<Operation>
    signature: "std::unique_ptr<Operation> Create(const Block* parent_block,\n                                           IRContext&
      context,\n                                           absl::string_view op_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:296,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:296,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:298,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:300,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:300,1
    - Dst: std::move
      Src: /src/raksha/src/ir/block_builder_test.cc:300,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:303,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:303,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:305,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:307,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:307,1
    - Dst: std::move
      Src: /src/raksha/src/ir/block_builder_test.cc:307,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:309,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/block_builder_test.cc:310,1
    - Dst: auto::operations
      Src: /src/raksha/src/ir/block_builder_test.cc:310,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/block_builder_test.cc:311,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:311,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:311,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:312,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 313
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - std::make_unique<Operation>
    - testing::ElementsAre
    - GetOperator
    - std::addressof
    - auto::operations
    - testing::Pointer
    - std::move
    - EXPECT_THAT
    - BlockBuilder::build
    - testing::Eq
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AllowsAdditionOfPreConstructedOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:317,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:318,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:319,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:320,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:321,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/block_builder_test.cc:322,1
    - Dst: auto::operations
      Src: /src/raksha/src/ir/block_builder_test.cc:322,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/block_builder_test.cc:323,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:323,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:323,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:324,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 325
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - auto::operations
    - std::addressof
    - testing::Pointer
    - EXPECT_THAT
    - BlockBuilder::build
    - testing::Eq
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AllowsAdditionOfOperationWithCustomCreateMethod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:331,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 336
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderDeathTest, AddOperationFailsIfCustomCreateReturnsNullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:340,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderDeathTest, AddOperationFailsIfCustomCreateSetsWrongBlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:346,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:347,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 350
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - BlockBuilder::build
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderDeathTest, InvokingBuildMoreThanOnceFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:354,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:355,1
    - Dst: BlockBuilder::GetBlockPtr
      Src: /src/raksha/src/ir/block_builder_test.cc:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 359
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - BlockBuilder::GetBlockPtr
    - EXPECT_DEATH
    - BlockBuilder::build
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderDeathTest, InvokingGetBlockPtrAfterBuildFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Operator
      Src: /src/raksha/src/ir/block_builder_test.cc:38,1
    - Dst: Operator
      Src: /src/raksha/src/ir/block_builder_test.cc:39,1
    - Dst: Operator
      Src: /src/raksha/src/ir/block_builder_test.cc:40,1
    - Dst: Operator
      Src: /src/raksha/src/ir/block_builder_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: raksha::ir::BlockBuilderTest::BlockBuilderTest
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - Operator
    linkageType: ''
    returnType: void
    signature: void BlockBuilderTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterSchema
      Src: /src/raksha/src/ir/block_builder_test.cc:47,1
    - Dst: std::string
      Src: /src/raksha/src/ir/block_builder_test.cc:47,1
    - Dst: MakeEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - schema_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: raksha::ir::BlockBuilderTest::MakeTestEntityType
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - RegisterSchema
    - std::string
    - MakeEntityType
    linkageType: ''
    returnType: types::Type
    signature: types::Type MakeTestEntityType(absl::string_view schema_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::BlockBuilderTest::MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: raksha::ir::BlockBuilderTest::MakePrimitiveType
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 2
    functionsReached:
    - raksha::ir::BlockBuilderTest::MakePrimitiveType
    linkageType: ''
    returnType: types::Type
    signature: types::Type MakePrimitiveType()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:62,1
    - Dst: Block::parent_module
      Src: /src/raksha/src/ir/block_builder_test.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - Block::parent_module
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, DefaultConstructorInitilizesModuleToNullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindDecl
      Src: /src/raksha/src/ir/block_builder_test.cc:71,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/block_builder_test.cc:72,1
    - Dst: DataDecl*::type
      Src: /src/raksha/src/ir/block_builder_test.cc:73,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:74,1
    - Dst: kind
      Src: /src/raksha/src/ir/block_builder_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:75,1
    - Dst: static_cast<const types::EntityType&>
      Src: /src/raksha/src/ir/block_builder_test.cc:76,1
    - Dst: FindDecl
      Src: /src/raksha/src/ir/block_builder_test.cc:78,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/block_builder_test.cc:79,1
    - Dst: DataDecl*::type
      Src: /src/raksha/src/ir/block_builder_test.cc:80,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:81,1
    - Dst: kind
      Src: /src/raksha/src/ir/block_builder_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ' decls'
    - entity_key
    - primitive_key
    - schema_name
    argTypes:
    - DataDeclCollection
    - absl::string_view
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 82
    functionName: raksha::ir::CheckExpectedDecls
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 3
    functionsReached:
    - kind
    - EXPECT_EQ
    - static_cast<const types::EntityType&>
    - FindDecl
    - ASSERT_EQ
    - DataDecl*::type
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void CheckExpectedDecls(const DataDeclCollection& decls,\n                        absl::string_view
      entity_key,\n                        absl::string_view primitive_key,\n                        absl::string_view
      schema_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::AddInput
      Src: /src/raksha/src/ir/block_builder_test.cc:86,1
    - Dst: MakeTestEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:86,1
    - Dst: BlockBuilder::AddInput
      Src: /src/raksha/src/ir/block_builder_test.cc:87,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:87,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:88,1
    - Dst: raksha::ir::CheckExpectedDecls
      Src: /src/raksha/src/ir/block_builder_test.cc:89,1
    - Dst: auto::inputs
      Src: /src/raksha/src/ir/block_builder_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - MakeTestEntityType
    - BlockBuilder::AddInput
    - MakePrimitiveType
    - BlockBuilder::build
    - auto::inputs
    - raksha::ir::CheckExpectedDecls
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddInputUpdatesInputDecls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:96,1
    - Dst: MakeTestEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:96,1
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:97,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:97,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:98,1
    - Dst: raksha::ir::CheckExpectedDecls
      Src: /src/raksha/src/ir/block_builder_test.cc:99,1
    - Dst: auto::outputs
      Src: /src/raksha/src/ir/block_builder_test.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - MakeTestEntityType
    - auto::outputs
    - MakePrimitiveType
    - BlockBuilder::build
    - raksha::ir::CheckExpectedDecls
    - BlockBuilder::AddOutput
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddOutputUpdatesOutputDecls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/block_builder_test.cc:107,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:107,1
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:108,1
    - Dst: MakeTestEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:108,1
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:109,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:109,1
    - Dst: BlockBuilder::AddResult
      Src: /src/raksha/src/ir/block_builder_test.cc:110,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:110,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/block_builder_test.cc:110,1
    - Dst: BlockBuilder::AddResult
      Src: /src/raksha/src/ir/block_builder_test.cc:111,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:111,1
    - Dst: raksha::ir::value::StoredValue::StoredValue
      Src: /src/raksha/src/ir/block_builder_test.cc:111,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:112,1
    - Dst: auto::results
      Src: /src/raksha/src/ir/block_builder_test.cc:113,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:117,1
    - Dst: count
      Src: /src/raksha/src/ir/block_builder_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:118,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/ir/block_builder_test.cc:118,1
    - Dst: at
      Src: /src/raksha/src/ir/block_builder_test.cc:118,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:119,1
    - Dst: count
      Src: /src/raksha/src/ir/block_builder_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:120,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/ir/block_builder_test.cc:120,1
    - Dst: at
      Src: /src/raksha/src/ir/block_builder_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - MakeTestEntityType
    - EXPECT_EQ
    - Value
    - raksha::ir::value::StoredValue::StoredValue
    - BlockBuilder::AddResult
    - count
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - std::make_unique<Storage>
    - BlockBuilder::build
    - ASSERT_EQ
    - MakePrimitiveType
    - at
    - BlockBuilder::AddOutput
    - auto::results
    - raksha::ir::ValueToString
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddResultsUpdatesResults)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:126,1
    - Dst: BlockBuilder::AddResult
      Src: /src/raksha/src/ir/block_builder_test.cc:126,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:126,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/block_builder_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - Value
    - BlockBuilder::AddResult
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderDeathTest, AddResultsVerifiesOutputIsDeclared)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:133,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:133,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:135,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:135,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:137,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:137,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:140,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:140,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:142,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:142,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:144,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:144,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:146,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/block_builder_test.cc:147,1
    - Dst: auto::operations
      Src: /src/raksha/src/ir/block_builder_test.cc:147,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/block_builder_test.cc:148,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:148,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:148,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:149,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:149,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:150,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 151
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - testing::ElementsAre
    - GetOperator
    - std::addressof
    - auto::operations
    - testing::Pointer
    - EXPECT_THAT
    - BlockBuilder::build
    - testing::Eq
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddOperationUpdatesOperationList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:156,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:156,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:158,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:158,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:160,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:160,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:163,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:163,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:163,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/block_builder_test.cc:164,1
    - Dst: ValueList
      Src: /src/raksha/src/ir/block_builder_test.cc:164,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:166,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:166,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:166,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/block_builder_test.cc:167,1
    - Dst: ValueList
      Src: /src/raksha/src/ir/block_builder_test.cc:167,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:169,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:169,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:169,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/block_builder_test.cc:170,1
    - Dst: ValueList
      Src: /src/raksha/src/ir/block_builder_test.cc:170,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:172,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/block_builder_test.cc:173,1
    - Dst: auto::operations
      Src: /src/raksha/src/ir/block_builder_test.cc:173,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/block_builder_test.cc:174,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:174,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:174,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:175,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:175,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:176,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 177
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - NamedAttributeMap
    - testing::ElementsAre
    - GetOperator
    - std::addressof
    - BlockBuilder::AddOperation
    - auto::operations
    - testing::Pointer
    - EXPECT_THAT
    - BlockBuilder::build
    - testing::Eq
    - ValueList
    - std::make_unique<Operation>
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddOperationOfUniquePtrUpdatesOperationList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::GetBlockPtr
      Src: /src/raksha/src/ir/block_builder_test.cc:181,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:183,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:183,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:184,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:184,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:184,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/block_builder_test.cc:185,1
    - Dst: ValueList
      Src: /src/raksha/src/ir/block_builder_test.cc:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - std::make_unique<Operation>
    - NamedAttributeMap
    - GetOperator
    - EXPECT_DEATH
    - BlockBuilder::GetBlockPtr
    - ValueList
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, SetParentPtrErrorsWithPredefinedParent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::AddImplementation
      Src: /src/raksha/src/ir/block_builder_test.cc:192,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:194,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:195,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:195,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:195,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:199,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/block_builder_test.cc:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 200
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - BlockBuilder::AddImplementation
    - auto::get
    - std::addressof
    - BlockBuilder::build
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddImplementationPassesSelfAndResultBlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::GetBlockPtr
      Src: /src/raksha/src/ir/block_builder_test.cc:207,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:208,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:209,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/block_builder_test.cc:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 210
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - BlockBuilder::GetBlockPtr
    - EXPECT_EQ
    - BlockBuilder::build
    - auto::get
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, GetBlockPtrReturnsCorrectBlockPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::GetBlockPtr
      Src: /src/raksha/src/ir/block_builder_test.cc:215,1
    - Dst: BlockBuilder::AddImplementation
      Src: /src/raksha/src/ir/block_builder_test.cc:216,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:218,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:219,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:219,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:222,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:224,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/block_builder_test.cc:224,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:225,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/block_builder_test.cc:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 226
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - BlockBuilder::AddImplementation
    - auto::get
    - std::addressof
    - BlockBuilder::build
    - BlockBuilder::GetBlockPtr
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddImplementationDoesNotChangeBlockAddress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::GetBlockPtr
      Src: /src/raksha/src/ir/block_builder_test.cc:230,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:232,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:232,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:233,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:234,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/block_builder_test.cc:235,1
    - Dst: auto::operations
      Src: /src/raksha/src/ir/block_builder_test.cc:235,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/block_builder_test.cc:236,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:236,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:236,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:237,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/block_builder_test.cc:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 238
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - EXPECT_EQ
    - testing::ElementsAre
    - GetOperator
    - auto::get
    - auto::operations
    - testing::Pointer
    - EXPECT_THAT
    - BlockBuilder::build
    - testing::Eq
    - BlockBuilder::GetBlockPtr
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddOperationDoesNotChangeBlockAddress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::AddImplementation
      Src: /src/raksha/src/ir/block_builder_test.cc:243,1
    - Dst: BlockBuilder::AddInput
      Src: /src/raksha/src/ir/block_builder_test.cc:245,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:245,1
    - Dst: BlockBuilder::AddInput
      Src: /src/raksha/src/ir/block_builder_test.cc:246,1
    - Dst: MakeTestEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:246,1
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:247,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:247,1
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:248,1
    - Dst: MakeTestEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:248,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:250,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:250,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:251,1
    - Dst: BlockBuilder::AddResult
      Src: /src/raksha/src/ir/block_builder_test.cc:252,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:252,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/block_builder_test.cc:252,1
    - Dst: SsaNames::AddID
      Src: /src/raksha/src/ir/block_builder_test.cc:253,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:253,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/block_builder_test.cc:253,1
    - Dst: BlockBuilder::AddResult
      Src: /src/raksha/src/ir/block_builder_test.cc:254,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:254,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/block_builder_test.cc:254,1
    - Dst: SsaNames::AddID
      Src: /src/raksha/src/ir/block_builder_test.cc:255,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:255,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/block_builder_test.cc:255,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:258,1
    - Dst: raksha::ir::CheckExpectedDecls
      Src: /src/raksha/src/ir/block_builder_test.cc:259,1
    - Dst: auto::inputs
      Src: /src/raksha/src/ir/block_builder_test.cc:259,1
    - Dst: raksha::ir::CheckExpectedDecls
      Src: /src/raksha/src/ir/block_builder_test.cc:262,1
    - Dst: auto::outputs
      Src: /src/raksha/src/ir/block_builder_test.cc:262,1
    - Dst: auto::results
      Src: /src/raksha/src/ir/block_builder_test.cc:265,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:266,1
    - Dst: count
      Src: /src/raksha/src/ir/block_builder_test.cc:266,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:269,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/ir/block_builder_test.cc:269,1
    - Dst: at
      Src: /src/raksha/src/ir/block_builder_test.cc:269,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:271,1
    - Dst: count
      Src: /src/raksha/src/ir/block_builder_test.cc:271,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:274,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/ir/block_builder_test.cc:274,1
    - Dst: at
      Src: /src/raksha/src/ir/block_builder_test.cc:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 276
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - auto::inputs
    - EXPECT_EQ
    - BlockBuilder::AddInput
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - BlockBuilder::AddImplementation
    - GetOperator
    - SsaNames::AddID
    - raksha::ir::CheckExpectedDecls
    - ABSL_DIE_IF_NULL
    - BlockBuilder::AddResult
    - ASSERT_EQ
    - at
    - BlockBuilder::AddOutput
    - MakeTestEntityType
    - Value
    - auto::outputs
    - count
    - BlockBuilder::build
    - MakePrimitiveType
    - BlockBuilder::AddOperation
    - auto::results
    - raksha::ir::ValueToString
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddImplementationMakingMultipleUpdates)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsRegisteredOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:284,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:286,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:288,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:288,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/block_builder_test.cc:288,1
    - Dst: ValueList
      Src: /src/raksha/src/ir/block_builder_test.cc:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - parent_block
    - ' context'
    - op_name
    argTypes:
    - Block*
    - IRContext
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 290
    functionName: raksha::ir::TestOperation::Create
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - NamedAttributeMap
    - IsRegisteredOperator
    - GetOperator
    - ValueList
    - std::make_unique<Operation>
    linkageType: ''
    returnType: std::unique_ptr<Operation>
    signature: "std::unique_ptr<Operation> Create(const Block* parent_block,\n                                           IRContext&
      context,\n                                           absl::string_view op_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:296,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:296,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:298,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:300,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:300,1
    - Dst: std::move
      Src: /src/raksha/src/ir/block_builder_test.cc:300,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:303,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:303,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:305,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:307,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:307,1
    - Dst: std::move
      Src: /src/raksha/src/ir/block_builder_test.cc:307,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:309,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/block_builder_test.cc:310,1
    - Dst: auto::operations
      Src: /src/raksha/src/ir/block_builder_test.cc:310,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/block_builder_test.cc:311,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:311,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:311,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:312,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 313
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - std::make_unique<Operation>
    - testing::ElementsAre
    - GetOperator
    - std::addressof
    - auto::operations
    - testing::Pointer
    - std::move
    - EXPECT_THAT
    - BlockBuilder::build
    - testing::Eq
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AllowsAdditionOfPreConstructedOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:317,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:318,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:319,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:320,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:321,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/block_builder_test.cc:322,1
    - Dst: auto::operations
      Src: /src/raksha/src/ir/block_builder_test.cc:322,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/block_builder_test.cc:323,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:323,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:323,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:324,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 325
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - auto::operations
    - std::addressof
    - testing::Pointer
    - EXPECT_THAT
    - BlockBuilder::build
    - testing::Eq
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AllowsAdditionOfOperationWithCustomCreateMethod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:331,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 336
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderDeathTest, AddOperationFailsIfCustomCreateReturnsNullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:340,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderDeathTest, AddOperationFailsIfCustomCreateSetsWrongBlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:346,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:347,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 350
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - BlockBuilder::build
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderDeathTest, InvokingBuildMoreThanOnceFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:354,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:355,1
    - Dst: BlockBuilder::GetBlockPtr
      Src: /src/raksha/src/ir/block_builder_test.cc:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 359
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - BlockBuilder::GetBlockPtr
    - EXPECT_DEATH
    - BlockBuilder::build
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderDeathTest, InvokingGetBlockPtrAfterBuildFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Operator
      Src: /src/raksha/src/ir/block_builder_test.cc:38,1
    - Dst: Operator
      Src: /src/raksha/src/ir/block_builder_test.cc:39,1
    - Dst: Operator
      Src: /src/raksha/src/ir/block_builder_test.cc:40,1
    - Dst: Operator
      Src: /src/raksha/src/ir/block_builder_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: raksha::ir::BlockBuilderTest::BlockBuilderTest
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - Operator
    linkageType: ''
    returnType: void
    signature: void BlockBuilderTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterSchema
      Src: /src/raksha/src/ir/block_builder_test.cc:47,1
    - Dst: std::string
      Src: /src/raksha/src/ir/block_builder_test.cc:47,1
    - Dst: MakeEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - schema_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: raksha::ir::BlockBuilderTest::MakeTestEntityType
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - RegisterSchema
    - std::string
    - MakeEntityType
    linkageType: ''
    returnType: types::Type
    signature: types::Type MakeTestEntityType(absl::string_view schema_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::BlockBuilderTest::MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: raksha::ir::BlockBuilderTest::MakePrimitiveType
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 3
    functionsReached:
    - raksha::ir::BlockBuilderTest::MakePrimitiveType
    linkageType: ''
    returnType: types::Type
    signature: types::Type MakePrimitiveType()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:62,1
    - Dst: Block::parent_module
      Src: /src/raksha/src/ir/block_builder_test.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - Block::parent_module
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, DefaultConstructorInitilizesModuleToNullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindDecl
      Src: /src/raksha/src/ir/block_builder_test.cc:71,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/block_builder_test.cc:72,1
    - Dst: DataDecl*::type
      Src: /src/raksha/src/ir/block_builder_test.cc:73,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:74,1
    - Dst: kind
      Src: /src/raksha/src/ir/block_builder_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:75,1
    - Dst: static_cast<const types::EntityType&>
      Src: /src/raksha/src/ir/block_builder_test.cc:76,1
    - Dst: FindDecl
      Src: /src/raksha/src/ir/block_builder_test.cc:78,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/block_builder_test.cc:79,1
    - Dst: DataDecl*::type
      Src: /src/raksha/src/ir/block_builder_test.cc:80,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:81,1
    - Dst: kind
      Src: /src/raksha/src/ir/block_builder_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ' decls'
    - entity_key
    - primitive_key
    - schema_name
    argTypes:
    - DataDeclCollection
    - absl::string_view
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 82
    functionName: raksha::ir::CheckExpectedDecls
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 6
    functionsReached:
    - kind
    - EXPECT_EQ
    - static_cast<const types::EntityType&>
    - FindDecl
    - ASSERT_EQ
    - DataDecl*::type
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void CheckExpectedDecls(const DataDeclCollection& decls,\n                        absl::string_view
      entity_key,\n                        absl::string_view primitive_key,\n                        absl::string_view
      schema_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::AddInput
      Src: /src/raksha/src/ir/block_builder_test.cc:86,1
    - Dst: MakeTestEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:86,1
    - Dst: BlockBuilder::AddInput
      Src: /src/raksha/src/ir/block_builder_test.cc:87,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:87,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:88,1
    - Dst: raksha::ir::CheckExpectedDecls
      Src: /src/raksha/src/ir/block_builder_test.cc:89,1
    - Dst: auto::inputs
      Src: /src/raksha/src/ir/block_builder_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - MakeTestEntityType
    - BlockBuilder::AddInput
    - MakePrimitiveType
    - BlockBuilder::build
    - auto::inputs
    - raksha::ir::CheckExpectedDecls
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddInputUpdatesInputDecls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:96,1
    - Dst: MakeTestEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:96,1
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:97,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:97,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:98,1
    - Dst: raksha::ir::CheckExpectedDecls
      Src: /src/raksha/src/ir/block_builder_test.cc:99,1
    - Dst: auto::outputs
      Src: /src/raksha/src/ir/block_builder_test.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - MakeTestEntityType
    - auto::outputs
    - MakePrimitiveType
    - BlockBuilder::build
    - raksha::ir::CheckExpectedDecls
    - BlockBuilder::AddOutput
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddOutputUpdatesOutputDecls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/block_builder_test.cc:107,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:107,1
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:108,1
    - Dst: MakeTestEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:108,1
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:109,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:109,1
    - Dst: BlockBuilder::AddResult
      Src: /src/raksha/src/ir/block_builder_test.cc:110,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:110,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/block_builder_test.cc:110,1
    - Dst: BlockBuilder::AddResult
      Src: /src/raksha/src/ir/block_builder_test.cc:111,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:111,1
    - Dst: raksha::ir::value::StoredValue::StoredValue
      Src: /src/raksha/src/ir/block_builder_test.cc:111,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:112,1
    - Dst: auto::results
      Src: /src/raksha/src/ir/block_builder_test.cc:113,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:117,1
    - Dst: count
      Src: /src/raksha/src/ir/block_builder_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:118,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/ir/block_builder_test.cc:118,1
    - Dst: at
      Src: /src/raksha/src/ir/block_builder_test.cc:118,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:119,1
    - Dst: count
      Src: /src/raksha/src/ir/block_builder_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:120,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/ir/block_builder_test.cc:120,1
    - Dst: at
      Src: /src/raksha/src/ir/block_builder_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - MakeTestEntityType
    - EXPECT_EQ
    - Value
    - raksha::ir::value::StoredValue::StoredValue
    - BlockBuilder::AddResult
    - count
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - std::make_unique<Storage>
    - BlockBuilder::build
    - ASSERT_EQ
    - MakePrimitiveType
    - at
    - BlockBuilder::AddOutput
    - auto::results
    - raksha::ir::ValueToString
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddResultsUpdatesResults)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:126,1
    - Dst: BlockBuilder::AddResult
      Src: /src/raksha/src/ir/block_builder_test.cc:126,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:126,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/block_builder_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - Value
    - BlockBuilder::AddResult
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderDeathTest, AddResultsVerifiesOutputIsDeclared)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:133,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:133,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:135,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:135,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:137,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:137,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:140,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:140,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:142,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:142,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:144,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:144,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:146,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/block_builder_test.cc:147,1
    - Dst: auto::operations
      Src: /src/raksha/src/ir/block_builder_test.cc:147,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/block_builder_test.cc:148,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:148,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:148,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:149,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:149,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:150,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 151
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - testing::ElementsAre
    - GetOperator
    - std::addressof
    - auto::operations
    - testing::Pointer
    - EXPECT_THAT
    - BlockBuilder::build
    - testing::Eq
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddOperationUpdatesOperationList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:156,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:156,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:158,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:158,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:160,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:160,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:163,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:163,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:163,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/block_builder_test.cc:164,1
    - Dst: ValueList
      Src: /src/raksha/src/ir/block_builder_test.cc:164,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:166,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:166,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:166,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/block_builder_test.cc:167,1
    - Dst: ValueList
      Src: /src/raksha/src/ir/block_builder_test.cc:167,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:169,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:169,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:169,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/block_builder_test.cc:170,1
    - Dst: ValueList
      Src: /src/raksha/src/ir/block_builder_test.cc:170,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:172,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/block_builder_test.cc:173,1
    - Dst: auto::operations
      Src: /src/raksha/src/ir/block_builder_test.cc:173,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/block_builder_test.cc:174,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:174,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:174,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:175,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:175,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:176,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 177
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - NamedAttributeMap
    - testing::ElementsAre
    - GetOperator
    - std::addressof
    - BlockBuilder::AddOperation
    - auto::operations
    - testing::Pointer
    - EXPECT_THAT
    - BlockBuilder::build
    - testing::Eq
    - ValueList
    - std::make_unique<Operation>
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddOperationOfUniquePtrUpdatesOperationList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::GetBlockPtr
      Src: /src/raksha/src/ir/block_builder_test.cc:181,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:183,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:183,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:184,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:184,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:184,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/block_builder_test.cc:185,1
    - Dst: ValueList
      Src: /src/raksha/src/ir/block_builder_test.cc:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - std::make_unique<Operation>
    - NamedAttributeMap
    - GetOperator
    - EXPECT_DEATH
    - BlockBuilder::GetBlockPtr
    - ValueList
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, SetParentPtrErrorsWithPredefinedParent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::AddImplementation
      Src: /src/raksha/src/ir/block_builder_test.cc:192,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:194,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:195,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:195,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:195,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:199,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/block_builder_test.cc:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 200
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - BlockBuilder::AddImplementation
    - auto::get
    - std::addressof
    - BlockBuilder::build
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddImplementationPassesSelfAndResultBlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::GetBlockPtr
      Src: /src/raksha/src/ir/block_builder_test.cc:207,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:208,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:209,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/block_builder_test.cc:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 210
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - BlockBuilder::GetBlockPtr
    - EXPECT_EQ
    - BlockBuilder::build
    - auto::get
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, GetBlockPtrReturnsCorrectBlockPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::GetBlockPtr
      Src: /src/raksha/src/ir/block_builder_test.cc:215,1
    - Dst: BlockBuilder::AddImplementation
      Src: /src/raksha/src/ir/block_builder_test.cc:216,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:218,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:219,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:219,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:222,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:224,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/block_builder_test.cc:224,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:225,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/block_builder_test.cc:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 226
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - BlockBuilder::AddImplementation
    - auto::get
    - std::addressof
    - BlockBuilder::build
    - BlockBuilder::GetBlockPtr
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddImplementationDoesNotChangeBlockAddress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::GetBlockPtr
      Src: /src/raksha/src/ir/block_builder_test.cc:230,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:232,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:232,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:233,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:234,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/block_builder_test.cc:235,1
    - Dst: auto::operations
      Src: /src/raksha/src/ir/block_builder_test.cc:235,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/block_builder_test.cc:236,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:236,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:236,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:237,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/block_builder_test.cc:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 238
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - EXPECT_EQ
    - testing::ElementsAre
    - GetOperator
    - auto::get
    - auto::operations
    - testing::Pointer
    - EXPECT_THAT
    - BlockBuilder::build
    - testing::Eq
    - BlockBuilder::GetBlockPtr
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddOperationDoesNotChangeBlockAddress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::AddImplementation
      Src: /src/raksha/src/ir/block_builder_test.cc:243,1
    - Dst: BlockBuilder::AddInput
      Src: /src/raksha/src/ir/block_builder_test.cc:245,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:245,1
    - Dst: BlockBuilder::AddInput
      Src: /src/raksha/src/ir/block_builder_test.cc:246,1
    - Dst: MakeTestEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:246,1
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:247,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:247,1
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:248,1
    - Dst: MakeTestEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:248,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:250,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:250,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:251,1
    - Dst: BlockBuilder::AddResult
      Src: /src/raksha/src/ir/block_builder_test.cc:252,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:252,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/block_builder_test.cc:252,1
    - Dst: SsaNames::AddID
      Src: /src/raksha/src/ir/block_builder_test.cc:253,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:253,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/block_builder_test.cc:253,1
    - Dst: BlockBuilder::AddResult
      Src: /src/raksha/src/ir/block_builder_test.cc:254,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:254,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/block_builder_test.cc:254,1
    - Dst: SsaNames::AddID
      Src: /src/raksha/src/ir/block_builder_test.cc:255,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:255,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/block_builder_test.cc:255,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:258,1
    - Dst: raksha::ir::CheckExpectedDecls
      Src: /src/raksha/src/ir/block_builder_test.cc:259,1
    - Dst: auto::inputs
      Src: /src/raksha/src/ir/block_builder_test.cc:259,1
    - Dst: raksha::ir::CheckExpectedDecls
      Src: /src/raksha/src/ir/block_builder_test.cc:262,1
    - Dst: auto::outputs
      Src: /src/raksha/src/ir/block_builder_test.cc:262,1
    - Dst: auto::results
      Src: /src/raksha/src/ir/block_builder_test.cc:265,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:266,1
    - Dst: count
      Src: /src/raksha/src/ir/block_builder_test.cc:266,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:269,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/ir/block_builder_test.cc:269,1
    - Dst: at
      Src: /src/raksha/src/ir/block_builder_test.cc:269,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:271,1
    - Dst: count
      Src: /src/raksha/src/ir/block_builder_test.cc:271,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:274,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/ir/block_builder_test.cc:274,1
    - Dst: at
      Src: /src/raksha/src/ir/block_builder_test.cc:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 276
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - auto::inputs
    - EXPECT_EQ
    - BlockBuilder::AddInput
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - BlockBuilder::AddImplementation
    - GetOperator
    - SsaNames::AddID
    - raksha::ir::CheckExpectedDecls
    - ABSL_DIE_IF_NULL
    - BlockBuilder::AddResult
    - ASSERT_EQ
    - at
    - BlockBuilder::AddOutput
    - MakeTestEntityType
    - Value
    - auto::outputs
    - count
    - BlockBuilder::build
    - MakePrimitiveType
    - BlockBuilder::AddOperation
    - auto::results
    - raksha::ir::ValueToString
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddImplementationMakingMultipleUpdates)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsRegisteredOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:284,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:286,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:288,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:288,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/block_builder_test.cc:288,1
    - Dst: ValueList
      Src: /src/raksha/src/ir/block_builder_test.cc:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - parent_block
    - ' context'
    - op_name
    argTypes:
    - Block*
    - IRContext
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 290
    functionName: raksha::ir::TestOperation::Create
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - NamedAttributeMap
    - IsRegisteredOperator
    - GetOperator
    - ValueList
    - std::make_unique<Operation>
    linkageType: ''
    returnType: std::unique_ptr<Operation>
    signature: "std::unique_ptr<Operation> Create(const Block* parent_block,\n                                           IRContext&
      context,\n                                           absl::string_view op_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:296,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:296,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:298,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:300,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:300,1
    - Dst: std::move
      Src: /src/raksha/src/ir/block_builder_test.cc:300,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:303,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:303,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:305,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:307,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:307,1
    - Dst: std::move
      Src: /src/raksha/src/ir/block_builder_test.cc:307,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:309,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/block_builder_test.cc:310,1
    - Dst: auto::operations
      Src: /src/raksha/src/ir/block_builder_test.cc:310,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/block_builder_test.cc:311,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:311,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:311,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:312,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 313
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - std::make_unique<Operation>
    - testing::ElementsAre
    - GetOperator
    - std::addressof
    - auto::operations
    - testing::Pointer
    - std::move
    - EXPECT_THAT
    - BlockBuilder::build
    - testing::Eq
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AllowsAdditionOfPreConstructedOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:317,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:318,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:319,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:320,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:321,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/block_builder_test.cc:322,1
    - Dst: auto::operations
      Src: /src/raksha/src/ir/block_builder_test.cc:322,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/block_builder_test.cc:323,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:323,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:323,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:324,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 325
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - auto::operations
    - std::addressof
    - testing::Pointer
    - EXPECT_THAT
    - BlockBuilder::build
    - testing::Eq
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AllowsAdditionOfOperationWithCustomCreateMethod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:331,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 336
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderDeathTest, AddOperationFailsIfCustomCreateReturnsNullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:340,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderDeathTest, AddOperationFailsIfCustomCreateSetsWrongBlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:346,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:347,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 350
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - BlockBuilder::build
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderDeathTest, InvokingBuildMoreThanOnceFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:354,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:355,1
    - Dst: BlockBuilder::GetBlockPtr
      Src: /src/raksha/src/ir/block_builder_test.cc:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 359
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - BlockBuilder::GetBlockPtr
    - EXPECT_DEATH
    - BlockBuilder::build
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderDeathTest, InvokingGetBlockPtrAfterBuildFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Operator
      Src: /src/raksha/src/ir/block_builder_test.cc:38,1
    - Dst: Operator
      Src: /src/raksha/src/ir/block_builder_test.cc:39,1
    - Dst: Operator
      Src: /src/raksha/src/ir/block_builder_test.cc:40,1
    - Dst: Operator
      Src: /src/raksha/src/ir/block_builder_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: raksha::ir::BlockBuilderTest::BlockBuilderTest
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - Operator
    linkageType: ''
    returnType: void
    signature: void BlockBuilderTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterSchema
      Src: /src/raksha/src/ir/block_builder_test.cc:47,1
    - Dst: std::string
      Src: /src/raksha/src/ir/block_builder_test.cc:47,1
    - Dst: MakeEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - schema_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: raksha::ir::BlockBuilderTest::MakeTestEntityType
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - RegisterSchema
    - std::string
    - MakeEntityType
    linkageType: ''
    returnType: types::Type
    signature: types::Type MakeTestEntityType(absl::string_view schema_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::BlockBuilderTest::MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: raksha::ir::BlockBuilderTest::MakePrimitiveType
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 4
    functionsReached:
    - raksha::ir::BlockBuilderTest::MakePrimitiveType
    linkageType: ''
    returnType: types::Type
    signature: types::Type MakePrimitiveType()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:62,1
    - Dst: Block::parent_module
      Src: /src/raksha/src/ir/block_builder_test.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - Block::parent_module
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, DefaultConstructorInitilizesModuleToNullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindDecl
      Src: /src/raksha/src/ir/block_builder_test.cc:71,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/block_builder_test.cc:72,1
    - Dst: DataDecl*::type
      Src: /src/raksha/src/ir/block_builder_test.cc:73,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:74,1
    - Dst: kind
      Src: /src/raksha/src/ir/block_builder_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:75,1
    - Dst: static_cast<const types::EntityType&>
      Src: /src/raksha/src/ir/block_builder_test.cc:76,1
    - Dst: FindDecl
      Src: /src/raksha/src/ir/block_builder_test.cc:78,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/block_builder_test.cc:79,1
    - Dst: DataDecl*::type
      Src: /src/raksha/src/ir/block_builder_test.cc:80,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:81,1
    - Dst: kind
      Src: /src/raksha/src/ir/block_builder_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ' decls'
    - entity_key
    - primitive_key
    - schema_name
    argTypes:
    - DataDeclCollection
    - absl::string_view
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 82
    functionName: raksha::ir::CheckExpectedDecls
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 9
    functionsReached:
    - kind
    - EXPECT_EQ
    - static_cast<const types::EntityType&>
    - FindDecl
    - ASSERT_EQ
    - DataDecl*::type
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void CheckExpectedDecls(const DataDeclCollection& decls,\n                        absl::string_view
      entity_key,\n                        absl::string_view primitive_key,\n                        absl::string_view
      schema_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::AddInput
      Src: /src/raksha/src/ir/block_builder_test.cc:86,1
    - Dst: MakeTestEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:86,1
    - Dst: BlockBuilder::AddInput
      Src: /src/raksha/src/ir/block_builder_test.cc:87,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:87,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:88,1
    - Dst: raksha::ir::CheckExpectedDecls
      Src: /src/raksha/src/ir/block_builder_test.cc:89,1
    - Dst: auto::inputs
      Src: /src/raksha/src/ir/block_builder_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - MakeTestEntityType
    - BlockBuilder::AddInput
    - MakePrimitiveType
    - BlockBuilder::build
    - auto::inputs
    - raksha::ir::CheckExpectedDecls
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddInputUpdatesInputDecls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:96,1
    - Dst: MakeTestEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:96,1
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:97,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:97,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:98,1
    - Dst: raksha::ir::CheckExpectedDecls
      Src: /src/raksha/src/ir/block_builder_test.cc:99,1
    - Dst: auto::outputs
      Src: /src/raksha/src/ir/block_builder_test.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - MakeTestEntityType
    - auto::outputs
    - MakePrimitiveType
    - BlockBuilder::build
    - raksha::ir::CheckExpectedDecls
    - BlockBuilder::AddOutput
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddOutputUpdatesOutputDecls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Storage>
      Src: /src/raksha/src/ir/block_builder_test.cc:107,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:107,1
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:108,1
    - Dst: MakeTestEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:108,1
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:109,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:109,1
    - Dst: BlockBuilder::AddResult
      Src: /src/raksha/src/ir/block_builder_test.cc:110,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:110,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/block_builder_test.cc:110,1
    - Dst: BlockBuilder::AddResult
      Src: /src/raksha/src/ir/block_builder_test.cc:111,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:111,1
    - Dst: raksha::ir::value::StoredValue::StoredValue
      Src: /src/raksha/src/ir/block_builder_test.cc:111,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:112,1
    - Dst: auto::results
      Src: /src/raksha/src/ir/block_builder_test.cc:113,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:117,1
    - Dst: count
      Src: /src/raksha/src/ir/block_builder_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:118,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/ir/block_builder_test.cc:118,1
    - Dst: at
      Src: /src/raksha/src/ir/block_builder_test.cc:118,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:119,1
    - Dst: count
      Src: /src/raksha/src/ir/block_builder_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:120,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/ir/block_builder_test.cc:120,1
    - Dst: at
      Src: /src/raksha/src/ir/block_builder_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - MakeTestEntityType
    - EXPECT_EQ
    - Value
    - raksha::ir::value::StoredValue::StoredValue
    - BlockBuilder::AddResult
    - count
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - std::make_unique<Storage>
    - BlockBuilder::build
    - ASSERT_EQ
    - MakePrimitiveType
    - at
    - BlockBuilder::AddOutput
    - auto::results
    - raksha::ir::ValueToString
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddResultsUpdatesResults)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:126,1
    - Dst: BlockBuilder::AddResult
      Src: /src/raksha/src/ir/block_builder_test.cc:126,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:126,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/block_builder_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - Value
    - BlockBuilder::AddResult
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderDeathTest, AddResultsVerifiesOutputIsDeclared)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:133,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:133,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:135,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:135,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:137,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:137,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:140,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:140,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:142,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:142,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:144,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:144,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:146,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/block_builder_test.cc:147,1
    - Dst: auto::operations
      Src: /src/raksha/src/ir/block_builder_test.cc:147,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/block_builder_test.cc:148,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:148,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:148,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:149,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:149,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:150,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 151
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - testing::ElementsAre
    - GetOperator
    - std::addressof
    - auto::operations
    - testing::Pointer
    - EXPECT_THAT
    - BlockBuilder::build
    - testing::Eq
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddOperationUpdatesOperationList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:156,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:156,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:158,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:158,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:160,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:160,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:163,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:163,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:163,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/block_builder_test.cc:164,1
    - Dst: ValueList
      Src: /src/raksha/src/ir/block_builder_test.cc:164,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:166,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:166,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:166,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/block_builder_test.cc:167,1
    - Dst: ValueList
      Src: /src/raksha/src/ir/block_builder_test.cc:167,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:169,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:169,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:169,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/block_builder_test.cc:170,1
    - Dst: ValueList
      Src: /src/raksha/src/ir/block_builder_test.cc:170,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:172,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/block_builder_test.cc:173,1
    - Dst: auto::operations
      Src: /src/raksha/src/ir/block_builder_test.cc:173,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/block_builder_test.cc:174,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:174,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:174,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:175,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:175,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:176,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 177
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - NamedAttributeMap
    - testing::ElementsAre
    - GetOperator
    - std::addressof
    - BlockBuilder::AddOperation
    - auto::operations
    - testing::Pointer
    - EXPECT_THAT
    - BlockBuilder::build
    - testing::Eq
    - ValueList
    - std::make_unique<Operation>
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddOperationOfUniquePtrUpdatesOperationList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::GetBlockPtr
      Src: /src/raksha/src/ir/block_builder_test.cc:181,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:183,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:183,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:184,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:184,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:184,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/block_builder_test.cc:185,1
    - Dst: ValueList
      Src: /src/raksha/src/ir/block_builder_test.cc:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - std::make_unique<Operation>
    - NamedAttributeMap
    - GetOperator
    - EXPECT_DEATH
    - BlockBuilder::GetBlockPtr
    - ValueList
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, SetParentPtrErrorsWithPredefinedParent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::AddImplementation
      Src: /src/raksha/src/ir/block_builder_test.cc:192,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:194,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:195,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:195,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:195,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:199,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/block_builder_test.cc:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 200
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - BlockBuilder::AddImplementation
    - auto::get
    - std::addressof
    - BlockBuilder::build
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddImplementationPassesSelfAndResultBlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::GetBlockPtr
      Src: /src/raksha/src/ir/block_builder_test.cc:207,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:208,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:209,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/block_builder_test.cc:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 210
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - BlockBuilder::GetBlockPtr
    - EXPECT_EQ
    - BlockBuilder::build
    - auto::get
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, GetBlockPtrReturnsCorrectBlockPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::GetBlockPtr
      Src: /src/raksha/src/ir/block_builder_test.cc:215,1
    - Dst: BlockBuilder::AddImplementation
      Src: /src/raksha/src/ir/block_builder_test.cc:216,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:218,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:219,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:219,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:222,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:224,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/block_builder_test.cc:224,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:225,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/block_builder_test.cc:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 226
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - BlockBuilder::AddImplementation
    - auto::get
    - std::addressof
    - BlockBuilder::build
    - BlockBuilder::GetBlockPtr
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddImplementationDoesNotChangeBlockAddress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::GetBlockPtr
      Src: /src/raksha/src/ir/block_builder_test.cc:230,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:232,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:232,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:233,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:234,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/block_builder_test.cc:235,1
    - Dst: auto::operations
      Src: /src/raksha/src/ir/block_builder_test.cc:235,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/block_builder_test.cc:236,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:236,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:236,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:237,1
    - Dst: auto::get
      Src: /src/raksha/src/ir/block_builder_test.cc:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 238
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - EXPECT_EQ
    - testing::ElementsAre
    - GetOperator
    - auto::get
    - auto::operations
    - testing::Pointer
    - EXPECT_THAT
    - BlockBuilder::build
    - testing::Eq
    - BlockBuilder::GetBlockPtr
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddOperationDoesNotChangeBlockAddress)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::AddImplementation
      Src: /src/raksha/src/ir/block_builder_test.cc:243,1
    - Dst: BlockBuilder::AddInput
      Src: /src/raksha/src/ir/block_builder_test.cc:245,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:245,1
    - Dst: BlockBuilder::AddInput
      Src: /src/raksha/src/ir/block_builder_test.cc:246,1
    - Dst: MakeTestEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:246,1
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:247,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/block_builder_test.cc:247,1
    - Dst: BlockBuilder::AddOutput
      Src: /src/raksha/src/ir/block_builder_test.cc:248,1
    - Dst: MakeTestEntityType
      Src: /src/raksha/src/ir/block_builder_test.cc:248,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:250,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:250,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:251,1
    - Dst: BlockBuilder::AddResult
      Src: /src/raksha/src/ir/block_builder_test.cc:252,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:252,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/block_builder_test.cc:252,1
    - Dst: SsaNames::AddID
      Src: /src/raksha/src/ir/block_builder_test.cc:253,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:253,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/block_builder_test.cc:253,1
    - Dst: BlockBuilder::AddResult
      Src: /src/raksha/src/ir/block_builder_test.cc:254,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:254,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/block_builder_test.cc:254,1
    - Dst: SsaNames::AddID
      Src: /src/raksha/src/ir/block_builder_test.cc:255,1
    - Dst: Value
      Src: /src/raksha/src/ir/block_builder_test.cc:255,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/block_builder_test.cc:255,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:258,1
    - Dst: raksha::ir::CheckExpectedDecls
      Src: /src/raksha/src/ir/block_builder_test.cc:259,1
    - Dst: auto::inputs
      Src: /src/raksha/src/ir/block_builder_test.cc:259,1
    - Dst: raksha::ir::CheckExpectedDecls
      Src: /src/raksha/src/ir/block_builder_test.cc:262,1
    - Dst: auto::outputs
      Src: /src/raksha/src/ir/block_builder_test.cc:262,1
    - Dst: auto::results
      Src: /src/raksha/src/ir/block_builder_test.cc:265,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:266,1
    - Dst: count
      Src: /src/raksha/src/ir/block_builder_test.cc:266,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:269,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/ir/block_builder_test.cc:269,1
    - Dst: at
      Src: /src/raksha/src/ir/block_builder_test.cc:269,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:271,1
    - Dst: count
      Src: /src/raksha/src/ir/block_builder_test.cc:271,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/block_builder_test.cc:274,1
    - Dst: raksha::ir::ValueToString
      Src: /src/raksha/src/ir/block_builder_test.cc:274,1
    - Dst: at
      Src: /src/raksha/src/ir/block_builder_test.cc:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 276
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - auto::inputs
    - EXPECT_EQ
    - BlockBuilder::AddInput
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - BlockBuilder::AddImplementation
    - GetOperator
    - SsaNames::AddID
    - raksha::ir::CheckExpectedDecls
    - ABSL_DIE_IF_NULL
    - BlockBuilder::AddResult
    - ASSERT_EQ
    - at
    - BlockBuilder::AddOutput
    - MakeTestEntityType
    - Value
    - auto::outputs
    - count
    - BlockBuilder::build
    - MakePrimitiveType
    - BlockBuilder::AddOperation
    - auto::results
    - raksha::ir::ValueToString
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AddImplementationMakingMultipleUpdates)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsRegisteredOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:284,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:286,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:288,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:288,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/block_builder_test.cc:288,1
    - Dst: ValueList
      Src: /src/raksha/src/ir/block_builder_test.cc:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - parent_block
    - ' context'
    - op_name
    argTypes:
    - Block*
    - IRContext
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 290
    functionName: raksha::ir::TestOperation::Create
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - NamedAttributeMap
    - IsRegisteredOperator
    - GetOperator
    - ValueList
    - std::make_unique<Operation>
    linkageType: ''
    returnType: std::unique_ptr<Operation>
    signature: "std::unique_ptr<Operation> Create(const Block* parent_block,\n                                           IRContext&
      context,\n                                           absl::string_view op_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:296,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:296,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:298,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:300,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:300,1
    - Dst: std::move
      Src: /src/raksha/src/ir/block_builder_test.cc:300,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/block_builder_test.cc:303,1
    - Dst: GetOperator
      Src: /src/raksha/src/ir/block_builder_test.cc:303,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/ir/block_builder_test.cc:305,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:307,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:307,1
    - Dst: std::move
      Src: /src/raksha/src/ir/block_builder_test.cc:307,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:309,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/block_builder_test.cc:310,1
    - Dst: auto::operations
      Src: /src/raksha/src/ir/block_builder_test.cc:310,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/block_builder_test.cc:311,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:311,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:311,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:312,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 313
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - std::make_unique<Operation>
    - testing::ElementsAre
    - GetOperator
    - std::addressof
    - auto::operations
    - testing::Pointer
    - std::move
    - EXPECT_THAT
    - BlockBuilder::build
    - testing::Eq
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AllowsAdditionOfPreConstructedOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:317,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:318,1
    - Dst: std::addressof
      Src: /src/raksha/src/ir/block_builder_test.cc:319,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:320,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:321,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/block_builder_test.cc:322,1
    - Dst: auto::operations
      Src: /src/raksha/src/ir/block_builder_test.cc:322,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/block_builder_test.cc:323,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:323,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:323,1
    - Dst: testing::Pointer
      Src: /src/raksha/src/ir/block_builder_test.cc:324,1
    - Dst: testing::Eq
      Src: /src/raksha/src/ir/block_builder_test.cc:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 325
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - testing::ElementsAre
    - auto::operations
    - std::addressof
    - testing::Pointer
    - EXPECT_THAT
    - BlockBuilder::build
    - testing::Eq
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderTest, AllowsAdditionOfOperationWithCustomCreateMethod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:331,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 336
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderDeathTest, AddOperationFailsIfCustomCreateReturnsNullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:340,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/block_builder_test.cc:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderDeathTest, AddOperationFailsIfCustomCreateSetsWrongBlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:346,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:347,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 350
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - BlockBuilder::build
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderDeathTest, InvokingBuildMoreThanOnceFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/block_builder_test.cc:354,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/block_builder_test.cc:355,1
    - Dst: BlockBuilder::GetBlockPtr
      Src: /src/raksha/src/ir/block_builder_test.cc:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 359
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/block_builder_test.cc
    functionUses: 0
    functionsReached:
    - BlockBuilder::GetBlockPtr
    - EXPECT_DEATH
    - BlockBuilder::build
    linkageType: ''
    returnType: void
    signature: void TEST_F(BlockBuilderDeathTest, InvokingGetBlockPtrAfterBuildFails)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrSplit
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:37,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:37,1
    - Dst: absl::SkipEmpty
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:37,1
    - Dst: std::vector::rbegin
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:41,1
    - Dst: std::vector::rend
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:41,1
    - Dst: AccessPathSelectors
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:43,1
    - Dst: Selector
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:43,1
    - Dst: FieldSelector
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:43,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:43,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: raksha::ir::MakeSelectorAccessPathFromString
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_test.cc
    functionUses: 0
    functionsReached:
    - absl::SkipEmpty
    - FieldSelector
    - std::vector::rbegin
    - AccessPathSelectors
    - Selector
    - std::move
    - std::vector::rend
    - absl::StrSplit
    linkageType: ''
    returnType: AccessPathSelectors
    signature: AccessPathSelectors MakeSelectorAccessPathFromString(std::string str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:60,1
    - Dst: GetParam
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:60,1
    - Dst: raksha::ir::MakeSelectorAccessPathFromString
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:65,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:66,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:66,1
    - Dst: raksha::ir::MakeSelectorAccessPathFromString
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:69,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:70,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:70,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_test.cc
    functionUses: 0
    functionsReached:
    - std::tie
    - ASSERT_TRUE
    - absl::StatusOr::ok
    - ASSERT_EQ
    - raksha::ir::MakeSelectorAccessPathFromString
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AccessPathEqualsTest, AccessPathsForEqualStringsCompareEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:92,1
    - Dst: raksha::ir::MakeSelectorAccessPathFromString
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:94,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:95,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:98,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:98,1
    - Dst: absl::StatusOr::begin
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:98,1
    - Dst: absl::StatusOr::end
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:99,1
    - Dst: append
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:101,1
    - Dst: ToString
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 104
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_test.cc
    functionUses: 0
    functionsReached:
    - absl::StatusOr::end
    - EXPECT_EQ
    - append
    - ToString
    - absl::StrJoin
    - ASSERT_TRUE
    - absl::StatusOr::ok
    - absl::StatusOr::begin
    - raksha::ir::MakeSelectorAccessPathFromString
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AccessPathSelectorsIteratorTest, SelectorsCanBeIteratedInOrder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:119,1
    - Dst: raksha::ir::MakeSelectorAccessPathFromString
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:122,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:124,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:124,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:127,1
    - Dst: absl::StatusOr::ToString
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 128
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_test.cc
    functionUses: 0
    functionsReached:
    - absl::StatusOr::ToString
    - ASSERT_TRUE
    - absl::StatusOr::ok
    - ASSERT_EQ
    - raksha::ir::MakeSelectorAccessPathFromString
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AccessPathTest, CanRoundTripAccessPathString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::MakeSelectorAccessPathFromString
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:139,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:140,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:140,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:141,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:141,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:144,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 146
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - EXPECT_TRUE
    - absl::VerifyTypeImplementsAbslHashCorrectly
    - ASSERT_TRUE
    - absl::StatusOr::ok
    - std::move
    - raksha::ir::MakeSelectorAccessPathFromString
    linkageType: ''
    returnType: void
    signature: void TEST(AccessPathHashTest, SelectorAccessPathHashTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrSplit
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:37,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:37,1
    - Dst: absl::SkipEmpty
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:37,1
    - Dst: std::vector::rbegin
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:41,1
    - Dst: std::vector::rend
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:41,1
    - Dst: AccessPathSelectors
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:43,1
    - Dst: Selector
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:43,1
    - Dst: FieldSelector
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:43,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:43,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: raksha::ir::MakeSelectorAccessPathFromString
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_test.cc
    functionUses: 4
    functionsReached:
    - absl::SkipEmpty
    - FieldSelector
    - std::vector::rbegin
    - AccessPathSelectors
    - Selector
    - std::move
    - std::vector::rend
    - absl::StrSplit
    linkageType: ''
    returnType: AccessPathSelectors
    signature: AccessPathSelectors MakeSelectorAccessPathFromString(std::string str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::tie
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:60,1
    - Dst: GetParam
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:60,1
    - Dst: raksha::ir::MakeSelectorAccessPathFromString
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:65,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:66,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:66,1
    - Dst: raksha::ir::MakeSelectorAccessPathFromString
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:69,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:70,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:70,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_test.cc
    functionUses: 0
    functionsReached:
    - std::tie
    - ASSERT_TRUE
    - absl::StatusOr::ok
    - ASSERT_EQ
    - raksha::ir::MakeSelectorAccessPathFromString
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AccessPathEqualsTest, AccessPathsForEqualStringsCompareEquals)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:92,1
    - Dst: raksha::ir::MakeSelectorAccessPathFromString
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:94,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:95,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:98,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:98,1
    - Dst: absl::StatusOr::begin
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:98,1
    - Dst: absl::StatusOr::end
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:99,1
    - Dst: append
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:101,1
    - Dst: ToString
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 104
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_test.cc
    functionUses: 0
    functionsReached:
    - absl::StatusOr::end
    - EXPECT_EQ
    - append
    - ToString
    - absl::StrJoin
    - ASSERT_TRUE
    - absl::StatusOr::ok
    - absl::StatusOr::begin
    - raksha::ir::MakeSelectorAccessPathFromString
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AccessPathSelectorsIteratorTest, SelectorsCanBeIteratedInOrder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:119,1
    - Dst: raksha::ir::MakeSelectorAccessPathFromString
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:122,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:124,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:124,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:127,1
    - Dst: absl::StatusOr::ToString
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 128
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_test.cc
    functionUses: 0
    functionsReached:
    - absl::StatusOr::ToString
    - ASSERT_TRUE
    - absl::StatusOr::ok
    - ASSERT_EQ
    - raksha::ir::MakeSelectorAccessPathFromString
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AccessPathTest, CanRoundTripAccessPathString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::MakeSelectorAccessPathFromString
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:139,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:140,1
    - Dst: absl::StatusOr::ok
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:140,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:141,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:141,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:144,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/raksha/src/ir/access_path_selectors_test.cc:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 146
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - EXPECT_TRUE
    - absl::VerifyTypeImplementsAbslHashCorrectly
    - ASSERT_TRUE
    - absl::StatusOr::ok
    - std::move
    - raksha::ir::MakeSelectorAccessPathFromString
    linkageType: ''
    returnType: void
    signature: void TEST(AccessPathHashTest, SelectorAccessPathHashTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/data_decl.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - absl::string_view
    - types::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: raksha::ir::DataDecl::DataDecl
    functionSourceFile: /src/raksha/src/ir/data_decl.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void DataDecl(absl::string_view name, types::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: raksha::ir::DataDecl::name
    functionSourceFile: /src/raksha/src/ir/data_decl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& type() const'
    functionSourceFile: /src/raksha/src/ir/data_decl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: types::Type
    signature: types::Type & type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/ir/data_decl.h:43,1
    - Dst: std::string
      Src: /src/raksha/src/ir/data_decl.h:44,1
    - Dst: std::make_unique<DataDecl>
      Src: /src/raksha/src/ir/data_decl.h:44,1
    - Dst: std::move
      Src: /src/raksha/src/ir/data_decl.h:44,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/data_decl.h:45,1
    - Dst: second::get
      Src: /src/raksha/src/ir/data_decl.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - absl::string_view
    - types::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: '& AddDecl(absl::string_view name, types::Type type)'
    functionSourceFile: /src/raksha/src/ir/data_decl.h
    functionUses: 0
    functionsReached:
    - second::get
    - std::make_unique<DataDecl>
    - std::move
    - CHECK
    - std::string
    - insert
    linkageType: ''
    returnType: DataDecl
    signature: DataDecl & AddDecl(absl::string_view name, types::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/ir/data_decl.h:51,1
    - Dst: end
      Src: /src/raksha/src/ir/data_decl.h:52,1
    - Dst: auto::second::get
      Src: /src/raksha/src/ir/data_decl.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: raksha::ir::DataDeclCollection::FindDecl
    functionSourceFile: /src/raksha/src/ir/data_decl.h
    functionUses: 0
    functionsReached:
    - auto::second::get
    - find
    - end
    linkageType: ''
    returnType: DataDecl
    signature: DataDecl * FindDecl(absl::string_view name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/data_decl.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - absl::string_view
    - types::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: raksha::ir::DataDecl::DataDecl
    functionSourceFile: /src/raksha/src/ir/data_decl.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void DataDecl(absl::string_view name, types::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: raksha::ir::DataDecl::name
    functionSourceFile: /src/raksha/src/ir/data_decl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& type() const'
    functionSourceFile: /src/raksha/src/ir/data_decl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: types::Type
    signature: types::Type & type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/ir/data_decl.h:43,1
    - Dst: std::string
      Src: /src/raksha/src/ir/data_decl.h:44,1
    - Dst: std::make_unique<DataDecl>
      Src: /src/raksha/src/ir/data_decl.h:44,1
    - Dst: std::move
      Src: /src/raksha/src/ir/data_decl.h:44,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/data_decl.h:45,1
    - Dst: second::get
      Src: /src/raksha/src/ir/data_decl.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - absl::string_view
    - types::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: '& AddDecl(absl::string_view name, types::Type type)'
    functionSourceFile: /src/raksha/src/ir/data_decl.h
    functionUses: 0
    functionsReached:
    - second::get
    - std::make_unique<DataDecl>
    - std::move
    - CHECK
    - std::string
    - insert
    linkageType: ''
    returnType: DataDecl
    signature: DataDecl & AddDecl(absl::string_view name, types::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/ir/data_decl.h:51,1
    - Dst: end
      Src: /src/raksha/src/ir/data_decl.h:52,1
    - Dst: auto::second::get
      Src: /src/raksha/src/ir/data_decl.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: raksha::ir::DataDeclCollection::FindDecl
    functionSourceFile: /src/raksha/src/ir/data_decl.h
    functionUses: 0
    functionsReached:
    - auto::second::get
    - find
    - end
    linkageType: ''
    returnType: DataDecl
    signature: DataDecl * FindDecl(absl::string_view name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Accept
      Src: /src/raksha/src/ir/ir_printer.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' out'
    - ' entity'
    - ' ssa_names'
    argTypes:
    - std::ostream
    - T
    - SsaNames
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: raksha::ir::IRPrinter::ToString
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 12
    functionsReached:
    - Accept
    linkageType: ''
    returnType: void
    signature: "void ToString(std::ostream& out, const T& entity,\n                       SsaNames&
      ssa_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Accept
      Src: /src/raksha/src/ir/ir_printer.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - ' entity'
    argTypes:
    - std::ostream
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: raksha::ir::IRPrinter::ToString
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 12
    functionsReached:
    - Accept
    linkageType: ''
    returnType: void
    signature: void ToString(std::ostream& out, const T& entity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer.h:53,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/ir/ir_printer.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' entity'
    - ' ssa_names'
    argTypes:
    - T
    - SsaNames
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: raksha::ir::IRPrinter::ToString
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 13
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - std::ostringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(const T& entity, SsaNames& ssa_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer.h:60,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/ir/ir_printer.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' entity'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: raksha::ir::IRPrinter::ToString
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 14
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - std::ostringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(const T& entity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRPrinter::Indent
      Src: /src/raksha/src/ir/ir_printer.h:65,1
    - Dst: absl::StreamFormat
      Src: /src/raksha/src/ir/ir_printer.h:66,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/ir_printer.h:67,1
    - Dst: raksha::ir::IRPrinter::IncreaseIndent
      Src: /src/raksha/src/ir/ir_printer.h:68,1
    - Dst: Unit
      Src: /src/raksha/src/ir/ir_printer.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: raksha::ir::IRPrinter::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 0
    functionsReached:
    - GetOrCreateID
    - Unit
    - raksha::ir::IRPrinter::IncreaseIndent
    - absl::StreamFormat
    - raksha::ir::IRPrinter::Indent
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Module& module) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRPrinter::DecreaseIndent
      Src: /src/raksha/src/ir/ir_printer.h:73,1
    - Dst: raksha::ir::IRPrinter::Indent
      Src: /src/raksha/src/ir/ir_printer.h:74,1
    - Dst: absl::StreamFormat
      Src: /src/raksha/src/ir/ir_printer.h:75,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/ir_printer.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' module'
    - result
    argTypes:
    - Module
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: raksha::ir::IRPrinter::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 0
    functionsReached:
    - GetOrCreateID
    - absl::StreamFormat
    - raksha::ir::IRPrinter::DecreaseIndent
    - raksha::ir::IRPrinter::Indent
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Module& module, Unit result) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRPrinter::Indent
      Src: /src/raksha/src/ir/ir_printer.h:81,1
    - Dst: absl::StreamFormat
      Src: /src/raksha/src/ir/ir_printer.h:82,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/ir_printer.h:82,1
    - Dst: raksha::ir::IRPrinter::IncreaseIndent
      Src: /src/raksha/src/ir/ir_printer.h:83,1
    - Dst: Unit
      Src: /src/raksha/src/ir/ir_printer.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: raksha::ir::IRPrinter::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 0
    functionsReached:
    - GetOrCreateID
    - Unit
    - raksha::ir::IRPrinter::IncreaseIndent
    - absl::StreamFormat
    - raksha::ir::IRPrinter::Indent
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Block& block) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRPrinter::DecreaseIndent
      Src: /src/raksha/src/ir/ir_printer.h:88,1
    - Dst: raksha::ir::IRPrinter::Indent
      Src: /src/raksha/src/ir/ir_printer.h:89,1
    - Dst: absl::StreamFormat
      Src: /src/raksha/src/ir/ir_printer.h:90,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/ir_printer.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' block'
    - result
    argTypes:
    - Block
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: raksha::ir::IRPrinter::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 0
    functionsReached:
    - GetOrCreateID
    - absl::StreamFormat
    - raksha::ir::IRPrinter::DecreaseIndent
    - raksha::ir::IRPrinter::Indent
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Block& block, Unit result) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRPrinter::PrintNamedMapInNameOrder
      Src: /src/raksha/src/ir/ir_printer.h:102,1
    - Dst: attributes
      Src: /src/raksha/src/ir/ir_printer.h:103,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer.h:104,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/ir_printer.h:106,1
    - Dst: inputs
      Src: /src/raksha/src/ir/ir_printer.h:107,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/ir_printer.h:108,1
    - Dst: ValueToString
      Src: /src/raksha/src/ir/ir_printer.h:108,1
    - Dst: op
      Src: /src/raksha/src/ir/ir_printer.h:111,1
    - Dst: number_of_return_values
      Src: /src/raksha/src/ir/ir_printer.h:112,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/ir_printer.h:119,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/ir_printer.h:119,1
    - Dst: raksha::ir::Value::MakeOperationResultValue
      Src: /src/raksha/src/ir/ir_printer.h:120,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/ir_printer.h:122,1
    - Dst: raksha::ir::IRPrinter::Indent
      Src: /src/raksha/src/ir/ir_printer.h:124,1
    - Dst: absl::StreamFormat
      Src: /src/raksha/src/ir/ir_printer.h:125,1
    - Dst: op
      Src: /src/raksha/src/ir/ir_printer.h:126,1
    - Dst: Unit
      Src: /src/raksha/src/ir/ir_printer.h:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 130
    functionName: raksha::ir::IRPrinter::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - op
    - GetOrCreateID
    - absl::StrAppend
    - std::vector::push_back
    - raksha::ir::Value::MakeOperationResultValue
    - Unit
    - inputs
    - absl::StrJoin
    - attributes
    - raksha::ir::IRPrinter::PrintNamedMapInNameOrder
    - absl::StreamFormat
    - number_of_return_values
    - ValueToString
    - raksha::ir::IRPrinter::Indent
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Operation& operation) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' operation'
    - result
    argTypes:
    - Operation
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: raksha::ir::IRPrinter::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Operation& operation, Unit result) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/raksha/src/ir/ir_printer.h:142,1
    - Dst: size
      Src: /src/raksha/src/ir/ir_printer.h:142,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/ir_printer.h:144,1
    - Dst: std::sort
      Src: /src/raksha/src/ir/ir_printer.h:146,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/ir/ir_printer.h:146,1
    - Dst: std::vector::end
      Src: /src/raksha/src/ir/ir_printer.h:146,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/ir_printer.h:147,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/ir_printer.h:149,1
    - Dst: value_pretty_printer
      Src: /src/raksha/src/ir/ir_printer.h:150,1
    - Dst: at
      Src: /src/raksha/src/ir/ir_printer.h:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' map_to_print'
    - value_pretty_printer
    argTypes:
    - absl::flat_hash_map<std::string, T>
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: raksha::ir::IRPrinter::PrintNamedMapInNameOrder
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 5
    functionsReached:
    - at
    - std::vector::push_back
    - absl::StrAppend
    - std::vector::begin
    - absl::StrJoin
    - std::vector::reserve
    - std::vector::end
    - size
    - value_pretty_printer
    - std::sort
    linkageType: ''
    returnType: std::string
    signature: "std::string PrintNamedMapInNameOrder(\n      const absl::flat_hash_map<std::string,
      T>& map_to_print,\n      F value_pretty_printer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/raksha/src/ir/ir_printer.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: raksha::ir::IRPrinter::Indent
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 5
    functionsReached:
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string Indent()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: raksha::ir::IRPrinter::IncreaseIndent
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IncreaseIndent()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: raksha::ir::IRPrinter::DecreaseIndent
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecreaseIndent()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' out'
    - ' ssa_names'
    argTypes:
    - std::ostream
    - SsaNames
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: raksha::ir::IRPrinter::IRPrinter
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IRPrinter(std::ostream& out, SsaNames& ssa_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer.h:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - ' operation'
    argTypes:
    - std::ostream
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: '& operator<<(std::ostream& out, const Operation& operation)'
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, const Operation& operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - ' block'
    argTypes:
    - std::ostream
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: '& operator<<(std::ostream& out, const Block& block)'
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, const Block& block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - ' module'
    argTypes:
    - std::ostream
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: '& operator<<(std::ostream& out, const Module& module)'
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, const Module& module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Accept
      Src: /src/raksha/src/ir/ir_printer.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' out'
    - ' entity'
    - ' ssa_names'
    argTypes:
    - std::ostream
    - T
    - SsaNames
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: raksha::ir::IRPrinter::ToString
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 18
    functionsReached:
    - Accept
    linkageType: ''
    returnType: void
    signature: "void ToString(std::ostream& out, const T& entity,\n                       SsaNames&
      ssa_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Accept
      Src: /src/raksha/src/ir/ir_printer.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' out'
    - ' entity'
    argTypes:
    - std::ostream
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: raksha::ir::IRPrinter::ToString
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 18
    functionsReached:
    - Accept
    linkageType: ''
    returnType: void
    signature: void ToString(std::ostream& out, const T& entity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer.h:53,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/ir/ir_printer.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' entity'
    - ' ssa_names'
    argTypes:
    - T
    - SsaNames
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: raksha::ir::IRPrinter::ToString
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 19
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - std::ostringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(const T& entity, SsaNames& ssa_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer.h:60,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/ir/ir_printer.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' entity'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: raksha::ir::IRPrinter::ToString
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 20
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - std::ostringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(const T& entity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRPrinter::Indent
      Src: /src/raksha/src/ir/ir_printer.h:65,1
    - Dst: absl::StreamFormat
      Src: /src/raksha/src/ir/ir_printer.h:66,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/ir_printer.h:67,1
    - Dst: raksha::ir::IRPrinter::IncreaseIndent
      Src: /src/raksha/src/ir/ir_printer.h:68,1
    - Dst: Unit
      Src: /src/raksha/src/ir/ir_printer.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: raksha::ir::IRPrinter::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 0
    functionsReached:
    - GetOrCreateID
    - Unit
    - raksha::ir::IRPrinter::IncreaseIndent
    - absl::StreamFormat
    - raksha::ir::IRPrinter::Indent
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Module& module) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRPrinter::DecreaseIndent
      Src: /src/raksha/src/ir/ir_printer.h:73,1
    - Dst: raksha::ir::IRPrinter::Indent
      Src: /src/raksha/src/ir/ir_printer.h:74,1
    - Dst: absl::StreamFormat
      Src: /src/raksha/src/ir/ir_printer.h:75,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/ir_printer.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' module'
    - result
    argTypes:
    - Module
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: raksha::ir::IRPrinter::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 0
    functionsReached:
    - GetOrCreateID
    - absl::StreamFormat
    - raksha::ir::IRPrinter::DecreaseIndent
    - raksha::ir::IRPrinter::Indent
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Module& module, Unit result) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRPrinter::Indent
      Src: /src/raksha/src/ir/ir_printer.h:81,1
    - Dst: absl::StreamFormat
      Src: /src/raksha/src/ir/ir_printer.h:82,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/ir_printer.h:82,1
    - Dst: raksha::ir::IRPrinter::IncreaseIndent
      Src: /src/raksha/src/ir/ir_printer.h:83,1
    - Dst: Unit
      Src: /src/raksha/src/ir/ir_printer.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: raksha::ir::IRPrinter::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 0
    functionsReached:
    - GetOrCreateID
    - Unit
    - raksha::ir::IRPrinter::IncreaseIndent
    - absl::StreamFormat
    - raksha::ir::IRPrinter::Indent
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Block& block) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRPrinter::DecreaseIndent
      Src: /src/raksha/src/ir/ir_printer.h:88,1
    - Dst: raksha::ir::IRPrinter::Indent
      Src: /src/raksha/src/ir/ir_printer.h:89,1
    - Dst: absl::StreamFormat
      Src: /src/raksha/src/ir/ir_printer.h:90,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/ir_printer.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' block'
    - result
    argTypes:
    - Block
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: raksha::ir::IRPrinter::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 0
    functionsReached:
    - GetOrCreateID
    - absl::StreamFormat
    - raksha::ir::IRPrinter::DecreaseIndent
    - raksha::ir::IRPrinter::Indent
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Block& block, Unit result) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRPrinter::PrintNamedMapInNameOrder
      Src: /src/raksha/src/ir/ir_printer.h:102,1
    - Dst: attributes
      Src: /src/raksha/src/ir/ir_printer.h:103,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer.h:104,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/ir_printer.h:106,1
    - Dst: inputs
      Src: /src/raksha/src/ir/ir_printer.h:107,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/ir_printer.h:108,1
    - Dst: ValueToString
      Src: /src/raksha/src/ir/ir_printer.h:108,1
    - Dst: op
      Src: /src/raksha/src/ir/ir_printer.h:111,1
    - Dst: number_of_return_values
      Src: /src/raksha/src/ir/ir_printer.h:112,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/ir_printer.h:119,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/ir_printer.h:119,1
    - Dst: raksha::ir::Value::MakeOperationResultValue
      Src: /src/raksha/src/ir/ir_printer.h:120,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/ir_printer.h:122,1
    - Dst: raksha::ir::IRPrinter::Indent
      Src: /src/raksha/src/ir/ir_printer.h:124,1
    - Dst: absl::StreamFormat
      Src: /src/raksha/src/ir/ir_printer.h:125,1
    - Dst: op
      Src: /src/raksha/src/ir/ir_printer.h:126,1
    - Dst: Unit
      Src: /src/raksha/src/ir/ir_printer.h:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 130
    functionName: raksha::ir::IRPrinter::PreVisit
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - op
    - GetOrCreateID
    - absl::StrAppend
    - std::vector::push_back
    - raksha::ir::Value::MakeOperationResultValue
    - Unit
    - inputs
    - absl::StrJoin
    - attributes
    - raksha::ir::IRPrinter::PrintNamedMapInNameOrder
    - absl::StreamFormat
    - number_of_return_values
    - ValueToString
    - raksha::ir::IRPrinter::Indent
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Operation& operation) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' operation'
    - result
    argTypes:
    - Operation
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: raksha::ir::IRPrinter::PostVisit
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Operation& operation, Unit result) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/raksha/src/ir/ir_printer.h:142,1
    - Dst: size
      Src: /src/raksha/src/ir/ir_printer.h:142,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/ir_printer.h:144,1
    - Dst: std::sort
      Src: /src/raksha/src/ir/ir_printer.h:146,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/ir/ir_printer.h:146,1
    - Dst: std::vector::end
      Src: /src/raksha/src/ir/ir_printer.h:146,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/ir_printer.h:147,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/ir_printer.h:149,1
    - Dst: value_pretty_printer
      Src: /src/raksha/src/ir/ir_printer.h:150,1
    - Dst: at
      Src: /src/raksha/src/ir/ir_printer.h:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' map_to_print'
    - value_pretty_printer
    argTypes:
    - absl::flat_hash_map<std::string, T>
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: raksha::ir::IRPrinter::PrintNamedMapInNameOrder
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 6
    functionsReached:
    - at
    - std::vector::push_back
    - absl::StrAppend
    - std::vector::begin
    - absl::StrJoin
    - std::vector::reserve
    - std::vector::end
    - size
    - value_pretty_printer
    - std::sort
    linkageType: ''
    returnType: std::string
    signature: "std::string PrintNamedMapInNameOrder(\n      const absl::flat_hash_map<std::string,
      T>& map_to_print,\n      F value_pretty_printer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/raksha/src/ir/ir_printer.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: raksha::ir::IRPrinter::Indent
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 10
    functionsReached:
    - std::string
    linkageType: ''
    returnType: std::string
    signature: std::string Indent()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: raksha::ir::IRPrinter::IncreaseIndent
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IncreaseIndent()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: raksha::ir::IRPrinter::DecreaseIndent
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecreaseIndent()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' out'
    - ' ssa_names'
    argTypes:
    - std::ostream
    - SsaNames
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: raksha::ir::IRPrinter::IRPrinter
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IRPrinter(std::ostream& out, SsaNames& ssa_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer.h:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - ' operation'
    argTypes:
    - std::ostream
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: '& operator<<(std::ostream& out, const Operation& operation)'
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, const Operation& operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - ' block'
    argTypes:
    - std::ostream
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: '& operator<<(std::ostream& out, const Block& block)'
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, const Block& block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_printer.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - ' module'
    argTypes:
    - std::ostream
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: '& operator<<(std::ostream& out, const Module& module)'
    functionSourceFile: /src/raksha/src/ir/ir_printer.h
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, const Module& module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Operator
      Src: /src/raksha/src/ir/ssa_names_test.cc:38,1
    - Dst: Operator
      Src: /src/raksha/src/ir/ssa_names_test.cc:39,1
    - Dst: raksha::ir::Value::MakeDefaultOperationResultValue
      Src: /src/raksha/src/ir/ssa_names_test.cc:41,1
    - Dst: raksha::ir::Value::MakeDefaultOperationResultValue
      Src: /src/raksha/src/ir/ssa_names_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: raksha::ir::SsaNamesTest<Value>::SsaNamesTest
    functionSourceFile: /src/raksha/src/ir/ssa_names_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::Value::MakeDefaultOperationResultValue
    - Operator
    linkageType: ''
    returnType: void
    signature: void SsaNamesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:56,1
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:57,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/ir/ssa_names_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ssa_names_test.cc:60,1
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ssa_names_test.cc:61,1
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: raksha::ir::TYPED_TEST
    functionSourceFile: /src/raksha/src/ir/ssa_names_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SsaNames::GetOrCreateID
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(SsaNamesTest, GetOrCreateIDReturnsUniqueIDs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:66,1
    - Dst: SsaNames::AddID
      Src: /src/raksha/src/ir/ssa_names_test.cc:67,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/ir/ssa_names_test.cc:69,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ssa_names_test.cc:70,1
    - Dst: SsaNames::AddID
      Src: /src/raksha/src/ir/ssa_names_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ssa_names_test.cc:72,1
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: raksha::ir::TYPED_TEST
    functionSourceFile: /src/raksha/src/ir/ssa_names_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SsaNames::GetOrCreateID
    - EXPECT_DEATH
    - SsaNames::AddID
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(SsaNamesTest, AddIDReturnsCorrectIDs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Operator
      Src: /src/raksha/src/ir/ssa_names_test.cc:38,1
    - Dst: Operator
      Src: /src/raksha/src/ir/ssa_names_test.cc:39,1
    - Dst: raksha::ir::Value::MakeDefaultOperationResultValue
      Src: /src/raksha/src/ir/ssa_names_test.cc:41,1
    - Dst: raksha::ir::Value::MakeDefaultOperationResultValue
      Src: /src/raksha/src/ir/ssa_names_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: raksha::ir::SsaNamesTest<Value>::SsaNamesTest
    functionSourceFile: /src/raksha/src/ir/ssa_names_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::Value::MakeDefaultOperationResultValue
    - Operator
    linkageType: ''
    returnType: void
    signature: void SsaNamesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:56,1
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:57,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/ir/ssa_names_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ssa_names_test.cc:60,1
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ssa_names_test.cc:61,1
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: raksha::ir::TYPED_TEST
    functionSourceFile: /src/raksha/src/ir/ssa_names_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SsaNames::GetOrCreateID
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(SsaNamesTest, GetOrCreateIDReturnsUniqueIDs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:66,1
    - Dst: SsaNames::AddID
      Src: /src/raksha/src/ir/ssa_names_test.cc:67,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/ir/ssa_names_test.cc:69,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ssa_names_test.cc:70,1
    - Dst: SsaNames::AddID
      Src: /src/raksha/src/ir/ssa_names_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ssa_names_test.cc:72,1
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: raksha::ir::TYPED_TEST
    functionSourceFile: /src/raksha/src/ir/ssa_names_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SsaNames::GetOrCreateID
    - EXPECT_DEATH
    - SsaNames::AddID
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(SsaNamesTest, AddIDReturnsCorrectIDs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Operator
      Src: /src/raksha/src/ir/ssa_names_test.cc:38,1
    - Dst: Operator
      Src: /src/raksha/src/ir/ssa_names_test.cc:39,1
    - Dst: raksha::ir::Value::MakeDefaultOperationResultValue
      Src: /src/raksha/src/ir/ssa_names_test.cc:41,1
    - Dst: raksha::ir::Value::MakeDefaultOperationResultValue
      Src: /src/raksha/src/ir/ssa_names_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: raksha::ir::SsaNamesTest<Value>::SsaNamesTest
    functionSourceFile: /src/raksha/src/ir/ssa_names_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::Value::MakeDefaultOperationResultValue
    - Operator
    linkageType: ''
    returnType: void
    signature: void SsaNamesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:56,1
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:57,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/ir/ssa_names_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ssa_names_test.cc:60,1
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ssa_names_test.cc:61,1
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: raksha::ir::TYPED_TEST
    functionSourceFile: /src/raksha/src/ir/ssa_names_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SsaNames::GetOrCreateID
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(SsaNamesTest, GetOrCreateIDReturnsUniqueIDs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:66,1
    - Dst: SsaNames::AddID
      Src: /src/raksha/src/ir/ssa_names_test.cc:67,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/ir/ssa_names_test.cc:69,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ssa_names_test.cc:70,1
    - Dst: SsaNames::AddID
      Src: /src/raksha/src/ir/ssa_names_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ssa_names_test.cc:72,1
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: raksha::ir::TYPED_TEST
    functionSourceFile: /src/raksha/src/ir/ssa_names_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SsaNames::GetOrCreateID
    - EXPECT_DEATH
    - SsaNames::AddID
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(SsaNamesTest, AddIDReturnsCorrectIDs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Operator
      Src: /src/raksha/src/ir/ssa_names_test.cc:38,1
    - Dst: Operator
      Src: /src/raksha/src/ir/ssa_names_test.cc:39,1
    - Dst: raksha::ir::Value::MakeDefaultOperationResultValue
      Src: /src/raksha/src/ir/ssa_names_test.cc:41,1
    - Dst: raksha::ir::Value::MakeDefaultOperationResultValue
      Src: /src/raksha/src/ir/ssa_names_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: raksha::ir::SsaNamesTest<Value>::SsaNamesTest
    functionSourceFile: /src/raksha/src/ir/ssa_names_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::Value::MakeDefaultOperationResultValue
    - Operator
    linkageType: ''
    returnType: void
    signature: void SsaNamesTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:56,1
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:57,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/ir/ssa_names_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ssa_names_test.cc:60,1
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ssa_names_test.cc:61,1
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: raksha::ir::TYPED_TEST
    functionSourceFile: /src/raksha/src/ir/ssa_names_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SsaNames::GetOrCreateID
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(SsaNamesTest, GetOrCreateIDReturnsUniqueIDs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:66,1
    - Dst: SsaNames::AddID
      Src: /src/raksha/src/ir/ssa_names_test.cc:67,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/ir/ssa_names_test.cc:69,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/ssa_names_test.cc:70,1
    - Dst: SsaNames::AddID
      Src: /src/raksha/src/ir/ssa_names_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ssa_names_test.cc:72,1
    - Dst: SsaNames::GetOrCreateID
      Src: /src/raksha/src/ir/ssa_names_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: raksha::ir::TYPED_TEST
    functionSourceFile: /src/raksha/src/ir/ssa_names_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SsaNames::GetOrCreateID
    - EXPECT_DEATH
    - SsaNames::AddID
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(SsaNamesTest, AddIDReturnsCorrectIDs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blocks
      Src: /src/raksha/src/ir/ir_to_proto.cc:30,1
    - Dst: proto::Module::mutable_blocks
      Src: /src/raksha/src/ir/ir_to_proto.cc:31,1
    - Dst: proto::BlockWithId*::mutable_block
      Src: /src/raksha/src/ir/ir_to_proto.cc:32,1
    - Dst: raksha::ir::IRToProto::BlockToProto
      Src: /src/raksha/src/ir/ir_to_proto.cc:32,1
    - Dst: proto::BlockWithId*::set_id
      Src: /src/raksha/src/ir/ir_to_proto.cc:33,1
    - Dst: raksha::ir::IRToProto::GetID
      Src: /src/raksha/src/ir/ir_to_proto.cc:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: raksha::ir::IRToProto::ModuleToProto
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.cc
    functionUses: 0
    functionsReached:
    - proto::BlockWithId*::mutable_block
    - proto::Module::mutable_blocks
    - raksha::ir::IRToProto::GetID
    - raksha::ir::IRToProto::BlockToProto
    - blocks
    - proto::BlockWithId*::set_id
    linkageType: ''
    returnType: proto::Module
    signature: proto::Module IRToProto::ModuleToProto(const Module& module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: operations
      Src: /src/raksha/src/ir/ir_to_proto.cc:41,1
    - Dst: proto::Block::mutable_operations
      Src: /src/raksha/src/ir/ir_to_proto.cc:43,1
    - Dst: proto::OperationWithId*::mutable_operation
      Src: /src/raksha/src/ir/ir_to_proto.cc:44,1
    - Dst: raksha::ir::IRToProto::OperationToProto
      Src: /src/raksha/src/ir/ir_to_proto.cc:44,1
    - Dst: raksha::ir::IRToProto::GetID
      Src: /src/raksha/src/ir/ir_to_proto.cc:45,1
    - Dst: proto::OperationWithId*::set_id
      Src: /src/raksha/src/ir/ir_to_proto.cc:46,1
    - Dst: results
      Src: /src/raksha/src/ir/ir_to_proto.cc:48,1
    - Dst: proto::Block::mutable_results
      Src: /src/raksha/src/ir/ir_to_proto.cc:49,1
    - Dst: raksha::ir::IRToProto::ValueToProto
      Src: /src/raksha/src/ir/ir_to_proto.cc:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 53
    functionName: raksha::ir::IRToProto::BlockToProto
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.cc
    functionUses: 1
    functionsReached:
    - raksha::ir::IRToProto::GetID
    - proto::Block::mutable_results
    - proto::Block::mutable_operations
    - operations
    - results
    - proto::OperationWithId*::set_id
    - raksha::ir::IRToProto::ValueToProto
    - proto::OperationWithId*::mutable_operation
    - raksha::ir::IRToProto::OperationToProto
    linkageType: ''
    returnType: proto::Block
    signature: proto::Block IRToProto::BlockToProto(const Block& block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: op
      Src: /src/raksha/src/ir/ir_to_proto.cc:57,1
    - Dst: name
      Src: /src/raksha/src/ir/ir_to_proto.cc:58,1
    - Dst: proto::Operation::set_operator_name
      Src: /src/raksha/src/ir/ir_to_proto.cc:59,1
    - Dst: std::string
      Src: /src/raksha/src/ir/ir_to_proto.cc:59,1
    - Dst: inputs
      Src: /src/raksha/src/ir/ir_to_proto.cc:60,1
    - Dst: proto::Operation::mutable_inputs
      Src: /src/raksha/src/ir/ir_to_proto.cc:61,1
    - Dst: raksha::ir::IRToProto::ValueToProto
      Src: /src/raksha/src/ir/ir_to_proto.cc:61,1
    - Dst: attributes
      Src: /src/raksha/src/ir/ir_to_proto.cc:63,1
    - Dst: proto::Operation::mutable_attributes
      Src: /src/raksha/src/ir/ir_to_proto.cc:64,1
    - Dst: raksha::ir::IRToProto::AttributeToProto
      Src: /src/raksha/src/ir/ir_to_proto.cc:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 69
    functionName: raksha::ir::IRToProto::OperationToProto
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.cc
    functionUses: 1
    functionsReached:
    - op
    - name
    - inputs
    - proto::Operation::mutable_inputs
    - attributes
    - proto::Operation::set_operator_name
    - raksha::ir::IRToProto::ValueToProto
    - proto::Operation::mutable_attributes
    - raksha::ir::IRToProto::AttributeToProto
    - std::string
    linkageType: ''
    returnType: proto::Operation
    signature: proto::Operation IRToProto::OperationToProto(const Operation& operation)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: If
      Src: /src/raksha/src/ir/ir_to_proto.cc:73,1
    - Dst: proto::Value::mutable_any_value
      Src: /src/raksha/src/ir/ir_to_proto.cc:74,1
    - Dst: raksha::ir::IRToProto::AnyToProto
      Src: /src/raksha/src/ir/ir_to_proto.cc:74,1
    - Dst: If
      Src: /src/raksha/src/ir/ir_to_proto.cc:75,1
    - Dst: proto::Value::mutable_operation_result_value
      Src: /src/raksha/src/ir/ir_to_proto.cc:76,1
    - Dst: raksha::ir::IRToProto::OperationResultToProto
      Src: /src/raksha/src/ir/ir_to_proto.cc:77,1
    - Dst: If
      Src: /src/raksha/src/ir/ir_to_proto.cc:78,1
    - Dst: proto::Value::mutable_block_argument_value
      Src: /src/raksha/src/ir/ir_to_proto.cc:79,1
    - Dst: raksha::ir::IRToProto::BlockArgumentToProto
      Src: /src/raksha/src/ir/ir_to_proto.cc:79,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/ir_to_proto.cc:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 84
    functionName: raksha::ir::IRToProto::ValueToProto
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.cc
    functionUses: 2
    functionsReached:
    - raksha::ir::IRToProto::OperationResultToProto
    - proto::Value::mutable_block_argument_value
    - proto::Value::mutable_operation_result_value
    - proto::Value::mutable_any_value
    - If
    - CHECK
    - raksha::ir::IRToProto::AnyToProto
    - raksha::ir::IRToProto::BlockArgumentToProto
    linkageType: ''
    returnType: proto::Value
    signature: proto::Value IRToProto::ValueToProto(const Value& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: raksha::ir::IRToProto::AnyToProto
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: proto::AnyValue
    signature: proto::AnyValue IRToProto::AnyToProto(const value::Any&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: proto::BlockArgumentValue::set_block_id
      Src: /src/raksha/src/ir/ir_to_proto.cc:95,1
    - Dst: raksha::ir::IRToProto::GetID
      Src: /src/raksha/src/ir/ir_to_proto.cc:95,1
    - Dst: element
      Src: /src/raksha/src/ir/ir_to_proto.cc:95,1
    - Dst: proto::BlockArgumentValue::set_block_argument_index
      Src: /src/raksha/src/ir/ir_to_proto.cc:96,1
    - Dst: index
      Src: /src/raksha/src/ir/ir_to_proto.cc:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' block_argument'
    argTypes:
    - value::BlockArgument
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: raksha::ir::IRToProto::BlockArgumentToProto
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.cc
    functionUses: 1
    functionsReached:
    - raksha::ir::IRToProto::GetID
    - element
    - proto::BlockArgumentValue::set_block_argument_index
    - index
    - proto::BlockArgumentValue::set_block_id
    linkageType: ''
    returnType: proto::BlockArgumentValue
    signature: "proto::BlockArgumentValue IRToProto::BlockArgumentToProto(\n    const
      value::BlockArgument& block_argument)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRToProto::GetID
      Src: /src/raksha/src/ir/ir_to_proto.cc:103,1
    - Dst: element
      Src: /src/raksha/src/ir/ir_to_proto.cc:103,1
    - Dst: proto::OperationResultValue::set_operation_id
      Src: /src/raksha/src/ir/ir_to_proto.cc:105,1
    - Dst: proto::OperationResultValue::set_output_index
      Src: /src/raksha/src/ir/ir_to_proto.cc:106,1
    - Dst: index
      Src: /src/raksha/src/ir/ir_to_proto.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' operation_result'
    argTypes:
    - value::OperationResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 108
    functionName: raksha::ir::IRToProto::OperationResultToProto
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.cc
    functionUses: 1
    functionsReached:
    - raksha::ir::IRToProto::GetID
    - proto::OperationResultValue::set_operation_id
    - element
    - index
    - proto::OperationResultValue::set_output_index
    linkageType: ''
    returnType: proto::OperationResultValue
    signature: "proto::OperationResultValue IRToProto::OperationResultToProto(\n    const
      value::OperationResult& operation_result)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetIf
      Src: /src/raksha/src/ir/ir_to_proto.cc:113,1
    - Dst: proto::AttributePayload::set_float_payload
      Src: /src/raksha/src/ir/ir_to_proto.cc:115,1
    - Dst: auto::value
      Src: /src/raksha/src/ir/ir_to_proto.cc:115,1
    - Dst: GetIf
      Src: /src/raksha/src/ir/ir_to_proto.cc:118,1
    - Dst: proto::AttributePayload::set_int64_payload
      Src: /src/raksha/src/ir/ir_to_proto.cc:120,1
    - Dst: auto::value
      Src: /src/raksha/src/ir/ir_to_proto.cc:120,1
    - Dst: GetIf
      Src: /src/raksha/src/ir/ir_to_proto.cc:123,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/ir_to_proto.cc:125,1
    - Dst: proto::AttributePayload::set_string_payload
      Src: /src/raksha/src/ir/ir_to_proto.cc:127,1
    - Dst: std::string
      Src: /src/raksha/src/ir/ir_to_proto.cc:127,1
    - Dst: auto::value
      Src: /src/raksha/src/ir/ir_to_proto.cc:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' attribute'
    argTypes:
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 129
    functionName: raksha::ir::IRToProto::AttributeToProto
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.cc
    functionUses: 1
    functionsReached:
    - proto::AttributePayload::set_int64_payload
    - auto::value
    - GetIf
    - proto::AttributePayload::set_string_payload
    - CHECK
    - std::string
    - proto::AttributePayload::set_float_payload
    linkageType: ''
    returnType: proto::AttributePayload
    signature: "proto::AttributePayload IRToProto::AttributeToProto(\n    const Attribute&
      attribute)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blocks
      Src: /src/raksha/src/ir/ir_to_proto.cc:30,1
    - Dst: proto::Module::mutable_blocks
      Src: /src/raksha/src/ir/ir_to_proto.cc:31,1
    - Dst: proto::BlockWithId*::mutable_block
      Src: /src/raksha/src/ir/ir_to_proto.cc:32,1
    - Dst: raksha::ir::IRToProto::BlockToProto
      Src: /src/raksha/src/ir/ir_to_proto.cc:32,1
    - Dst: proto::BlockWithId*::set_id
      Src: /src/raksha/src/ir/ir_to_proto.cc:33,1
    - Dst: raksha::ir::IRToProto::GetID
      Src: /src/raksha/src/ir/ir_to_proto.cc:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: raksha::ir::IRToProto::ModuleToProto
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.cc
    functionUses: 0
    functionsReached:
    - proto::BlockWithId*::mutable_block
    - proto::Module::mutable_blocks
    - raksha::ir::IRToProto::GetID
    - raksha::ir::IRToProto::BlockToProto
    - blocks
    - proto::BlockWithId*::set_id
    linkageType: ''
    returnType: proto::Module
    signature: proto::Module IRToProto::ModuleToProto(const Module& module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: operations
      Src: /src/raksha/src/ir/ir_to_proto.cc:41,1
    - Dst: proto::Block::mutable_operations
      Src: /src/raksha/src/ir/ir_to_proto.cc:43,1
    - Dst: proto::OperationWithId*::mutable_operation
      Src: /src/raksha/src/ir/ir_to_proto.cc:44,1
    - Dst: raksha::ir::IRToProto::OperationToProto
      Src: /src/raksha/src/ir/ir_to_proto.cc:44,1
    - Dst: raksha::ir::IRToProto::GetID
      Src: /src/raksha/src/ir/ir_to_proto.cc:45,1
    - Dst: proto::OperationWithId*::set_id
      Src: /src/raksha/src/ir/ir_to_proto.cc:46,1
    - Dst: results
      Src: /src/raksha/src/ir/ir_to_proto.cc:48,1
    - Dst: proto::Block::mutable_results
      Src: /src/raksha/src/ir/ir_to_proto.cc:49,1
    - Dst: raksha::ir::IRToProto::ValueToProto
      Src: /src/raksha/src/ir/ir_to_proto.cc:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 53
    functionName: raksha::ir::IRToProto::BlockToProto
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.cc
    functionUses: 2
    functionsReached:
    - raksha::ir::IRToProto::GetID
    - proto::Block::mutable_results
    - proto::Block::mutable_operations
    - operations
    - results
    - proto::OperationWithId*::set_id
    - raksha::ir::IRToProto::ValueToProto
    - proto::OperationWithId*::mutable_operation
    - raksha::ir::IRToProto::OperationToProto
    linkageType: ''
    returnType: proto::Block
    signature: proto::Block IRToProto::BlockToProto(const Block& block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: op
      Src: /src/raksha/src/ir/ir_to_proto.cc:57,1
    - Dst: name
      Src: /src/raksha/src/ir/ir_to_proto.cc:58,1
    - Dst: proto::Operation::set_operator_name
      Src: /src/raksha/src/ir/ir_to_proto.cc:59,1
    - Dst: std::string
      Src: /src/raksha/src/ir/ir_to_proto.cc:59,1
    - Dst: inputs
      Src: /src/raksha/src/ir/ir_to_proto.cc:60,1
    - Dst: proto::Operation::mutable_inputs
      Src: /src/raksha/src/ir/ir_to_proto.cc:61,1
    - Dst: raksha::ir::IRToProto::ValueToProto
      Src: /src/raksha/src/ir/ir_to_proto.cc:61,1
    - Dst: attributes
      Src: /src/raksha/src/ir/ir_to_proto.cc:63,1
    - Dst: proto::Operation::mutable_attributes
      Src: /src/raksha/src/ir/ir_to_proto.cc:64,1
    - Dst: raksha::ir::IRToProto::AttributeToProto
      Src: /src/raksha/src/ir/ir_to_proto.cc:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 69
    functionName: raksha::ir::IRToProto::OperationToProto
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.cc
    functionUses: 2
    functionsReached:
    - op
    - name
    - inputs
    - proto::Operation::mutable_inputs
    - attributes
    - proto::Operation::set_operator_name
    - raksha::ir::IRToProto::ValueToProto
    - proto::Operation::mutable_attributes
    - raksha::ir::IRToProto::AttributeToProto
    - std::string
    linkageType: ''
    returnType: proto::Operation
    signature: proto::Operation IRToProto::OperationToProto(const Operation& operation)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: If
      Src: /src/raksha/src/ir/ir_to_proto.cc:73,1
    - Dst: proto::Value::mutable_any_value
      Src: /src/raksha/src/ir/ir_to_proto.cc:74,1
    - Dst: raksha::ir::IRToProto::AnyToProto
      Src: /src/raksha/src/ir/ir_to_proto.cc:74,1
    - Dst: If
      Src: /src/raksha/src/ir/ir_to_proto.cc:75,1
    - Dst: proto::Value::mutable_operation_result_value
      Src: /src/raksha/src/ir/ir_to_proto.cc:76,1
    - Dst: raksha::ir::IRToProto::OperationResultToProto
      Src: /src/raksha/src/ir/ir_to_proto.cc:77,1
    - Dst: If
      Src: /src/raksha/src/ir/ir_to_proto.cc:78,1
    - Dst: proto::Value::mutable_block_argument_value
      Src: /src/raksha/src/ir/ir_to_proto.cc:79,1
    - Dst: raksha::ir::IRToProto::BlockArgumentToProto
      Src: /src/raksha/src/ir/ir_to_proto.cc:79,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/ir_to_proto.cc:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 84
    functionName: raksha::ir::IRToProto::ValueToProto
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.cc
    functionUses: 4
    functionsReached:
    - raksha::ir::IRToProto::OperationResultToProto
    - proto::Value::mutable_block_argument_value
    - proto::Value::mutable_operation_result_value
    - proto::Value::mutable_any_value
    - If
    - CHECK
    - raksha::ir::IRToProto::AnyToProto
    - raksha::ir::IRToProto::BlockArgumentToProto
    linkageType: ''
    returnType: proto::Value
    signature: proto::Value IRToProto::ValueToProto(const Value& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: raksha::ir::IRToProto::AnyToProto
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: proto::AnyValue
    signature: proto::AnyValue IRToProto::AnyToProto(const value::Any&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: proto::BlockArgumentValue::set_block_id
      Src: /src/raksha/src/ir/ir_to_proto.cc:95,1
    - Dst: raksha::ir::IRToProto::GetID
      Src: /src/raksha/src/ir/ir_to_proto.cc:95,1
    - Dst: element
      Src: /src/raksha/src/ir/ir_to_proto.cc:95,1
    - Dst: proto::BlockArgumentValue::set_block_argument_index
      Src: /src/raksha/src/ir/ir_to_proto.cc:96,1
    - Dst: index
      Src: /src/raksha/src/ir/ir_to_proto.cc:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' block_argument'
    argTypes:
    - value::BlockArgument
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: raksha::ir::IRToProto::BlockArgumentToProto
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.cc
    functionUses: 2
    functionsReached:
    - raksha::ir::IRToProto::GetID
    - element
    - proto::BlockArgumentValue::set_block_argument_index
    - index
    - proto::BlockArgumentValue::set_block_id
    linkageType: ''
    returnType: proto::BlockArgumentValue
    signature: "proto::BlockArgumentValue IRToProto::BlockArgumentToProto(\n    const
      value::BlockArgument& block_argument)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRToProto::GetID
      Src: /src/raksha/src/ir/ir_to_proto.cc:103,1
    - Dst: element
      Src: /src/raksha/src/ir/ir_to_proto.cc:103,1
    - Dst: proto::OperationResultValue::set_operation_id
      Src: /src/raksha/src/ir/ir_to_proto.cc:105,1
    - Dst: proto::OperationResultValue::set_output_index
      Src: /src/raksha/src/ir/ir_to_proto.cc:106,1
    - Dst: index
      Src: /src/raksha/src/ir/ir_to_proto.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' operation_result'
    argTypes:
    - value::OperationResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 108
    functionName: raksha::ir::IRToProto::OperationResultToProto
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.cc
    functionUses: 2
    functionsReached:
    - raksha::ir::IRToProto::GetID
    - proto::OperationResultValue::set_operation_id
    - element
    - index
    - proto::OperationResultValue::set_output_index
    linkageType: ''
    returnType: proto::OperationResultValue
    signature: "proto::OperationResultValue IRToProto::OperationResultToProto(\n    const
      value::OperationResult& operation_result)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetIf
      Src: /src/raksha/src/ir/ir_to_proto.cc:113,1
    - Dst: proto::AttributePayload::set_float_payload
      Src: /src/raksha/src/ir/ir_to_proto.cc:115,1
    - Dst: auto::value
      Src: /src/raksha/src/ir/ir_to_proto.cc:115,1
    - Dst: GetIf
      Src: /src/raksha/src/ir/ir_to_proto.cc:118,1
    - Dst: proto::AttributePayload::set_int64_payload
      Src: /src/raksha/src/ir/ir_to_proto.cc:120,1
    - Dst: auto::value
      Src: /src/raksha/src/ir/ir_to_proto.cc:120,1
    - Dst: GetIf
      Src: /src/raksha/src/ir/ir_to_proto.cc:123,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/ir_to_proto.cc:125,1
    - Dst: proto::AttributePayload::set_string_payload
      Src: /src/raksha/src/ir/ir_to_proto.cc:127,1
    - Dst: std::string
      Src: /src/raksha/src/ir/ir_to_proto.cc:127,1
    - Dst: auto::value
      Src: /src/raksha/src/ir/ir_to_proto.cc:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' attribute'
    argTypes:
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 129
    functionName: raksha::ir::IRToProto::AttributeToProto
    functionSourceFile: /src/raksha/src/ir/ir_to_proto.cc
    functionUses: 2
    functionsReached:
    - proto::AttributePayload::set_int64_payload
    - auto::value
    - GetIf
    - proto::AttributePayload::set_string_payload
    - CHECK
    - std::string
    - proto::AttributePayload::set_float_payload
    linkageType: ''
    returnType: proto::AttributePayload
    signature: "proto::AttributePayload IRToProto::AttributeToProto(\n    const Attribute&
      attribute)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:37,1
    - Dst: ParseProgram
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:45,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:45,1
    - Dst: raksha::ir::IRToProto::Convert
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:48,1
    - Dst: raksha::ir::ProtoToIR::Convert
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:52,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:55,1
    - Dst: raksha::ir::IRToProto::Convert
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:58,1
    - Dst: google::protobuf::util::MessageDifferencer::ReportDifferencesToString
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:62,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:63,1
    - Dst: google::protobuf::util::MessageDifferencer::Compare
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 67
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_to_proto_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - EXPECT_EQ
    - google::protobuf::util::MessageDifferencer::Compare
    - raksha::ir::ProtoToIR::Convert
    - raksha::ir::IRToProto::Convert
    - ParseProgram
    - ASSERT_TRUE
    - google::protobuf::util::MessageDifferencer::ReportDifferencesToString
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IrToProtoTest, RoundTripPreservesAllInformation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:37,1
    - Dst: ParseProgram
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:45,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:45,1
    - Dst: raksha::ir::IRToProto::Convert
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:48,1
    - Dst: raksha::ir::ProtoToIR::Convert
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:52,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:55,1
    - Dst: raksha::ir::IRToProto::Convert
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:58,1
    - Dst: google::protobuf::util::MessageDifferencer::ReportDifferencesToString
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:62,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:63,1
    - Dst: google::protobuf::util::MessageDifferencer::Compare
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 67
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_to_proto_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - EXPECT_EQ
    - google::protobuf::util::MessageDifferencer::Compare
    - raksha::ir::ProtoToIR::Convert
    - raksha::ir::IRToProto::Convert
    - ParseProgram
    - ASSERT_TRUE
    - google::protobuf::util::MessageDifferencer::ReportDifferencesToString
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IrToProtoTest, RoundTripPreservesAllInformation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:37,1
    - Dst: ParseProgram
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:45,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:45,1
    - Dst: raksha::ir::IRToProto::Convert
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:48,1
    - Dst: raksha::ir::ProtoToIR::Convert
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:52,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:55,1
    - Dst: raksha::ir::IRToProto::Convert
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:58,1
    - Dst: google::protobuf::util::MessageDifferencer::ReportDifferencesToString
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:62,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:63,1
    - Dst: google::protobuf::util::MessageDifferencer::Compare
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 67
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_to_proto_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - EXPECT_EQ
    - google::protobuf::util::MessageDifferencer::Compare
    - raksha::ir::ProtoToIR::Convert
    - raksha::ir::IRToProto::Convert
    - ParseProgram
    - ASSERT_TRUE
    - google::protobuf::util::MessageDifferencer::ReportDifferencesToString
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IrToProtoTest, RoundTripPreservesAllInformation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:37,1
    - Dst: ParseProgram
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:45,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:45,1
    - Dst: raksha::ir::IRToProto::Convert
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:48,1
    - Dst: raksha::ir::ProtoToIR::Convert
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:52,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:55,1
    - Dst: raksha::ir::IRToProto::Convert
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:58,1
    - Dst: google::protobuf::util::MessageDifferencer::ReportDifferencesToString
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:62,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:63,1
    - Dst: google::protobuf::util::MessageDifferencer::Compare
      Src: /src/raksha/src/ir/ir_to_proto_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 67
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/ir_to_proto_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - EXPECT_EQ
    - google::protobuf::util::MessageDifferencer::Compare
    - raksha::ir::ProtoToIR::Convert
    - raksha::ir::IRToProto::Convert
    - ParseProgram
    - ASSERT_TRUE
    - google::protobuf::util::MessageDifferencer::ReportDifferencesToString
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IrToProtoTest, RoundTripPreservesAllInformation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterSchema
      Src: /src/raksha/src/ir/data_decl_test.cc:32,1
    - Dst: std::string
      Src: /src/raksha/src/ir/data_decl_test.cc:32,1
    - Dst: MakeEntityType
      Src: /src/raksha/src/ir/data_decl_test.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' factory'
    - name
    argTypes:
    - types::TypeFactory
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: raksha::ir::DataDeclTestBase::MakeTestEntityType
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - RegisterSchema
    - std::string
    - MakeEntityType
    linkageType: ''
    returnType: types::Type
    signature: "types::Type MakeTestEntityType(types::TypeFactory& factory,\n                                        absl::string_view
      name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/data_decl_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:41,1
    - Dst: DataDecl::name
      Src: /src/raksha/src/ir/data_decl_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - DataDecl::name
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclTest, PrimitiveTypeDeclConstruction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::BlockBuilderTest::MakeTestEntityType
      Src: /src/raksha/src/ir/data_decl_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:47,1
    - Dst: DataDecl::name
      Src: /src/raksha/src/ir/data_decl_test.cc:47,1
    - Dst: DataDecl::type
      Src: /src/raksha/src/ir/data_decl_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:49,1
    - Dst: kind
      Src: /src/raksha/src/ir/data_decl_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:50,1
    - Dst: static_cast<const types::EntityType&>
      Src: /src/raksha/src/ir/data_decl_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - kind
    - EXPECT_EQ
    - static_cast<const types::EntityType&>
    - raksha::ir::BlockBuilderTest::MakeTestEntityType
    - DataDecl::name
    - DataDecl::type
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclTest, EntityTypeDeclConstruction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:60,1
    - Dst: raksha::ir::BlockBuilderTest::MakeTestEntityType
      Src: /src/raksha/src/ir/data_decl_test.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:62,1
    - Dst: name
      Src: /src/raksha/src/ir/data_decl_test.cc:62,1
    - Dst: type
      Src: /src/raksha/src/ir/data_decl_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:64,1
    - Dst: kind
      Src: /src/raksha/src/ir/data_decl_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:65,1
    - Dst: static_cast<const types::EntityType&>
      Src: /src/raksha/src/ir/data_decl_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - type
    - kind
    - EXPECT_EQ
    - static_cast<const types::EntityType&>
    - raksha::ir::BlockBuilderTest::MakeTestEntityType
    - name
    - AddDecl
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclCollectionTest, AddDeclReturnsAddedDecl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:70,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/data_decl_test.cc:70,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/data_decl_test.cc:71,1
    - Dst: AddDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:72,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/data_decl_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - AddDecl
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclCollectionTest, DuplicateAddDeclCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:77,1
    - Dst: raksha::ir::BlockBuilderTest::MakeTestEntityType
      Src: /src/raksha/src/ir/data_decl_test.cc:78,1
    - Dst: FindDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:80,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/data_decl_test.cc:81,1
    - Dst: DataDecl*::type
      Src: /src/raksha/src/ir/data_decl_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:83,1
    - Dst: kind
      Src: /src/raksha/src/ir/data_decl_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:84,1
    - Dst: static_cast<const types::EntityType&>
      Src: /src/raksha/src/ir/data_decl_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - kind
    - EXPECT_EQ
    - static_cast<const types::EntityType&>
    - FindDecl
    - raksha::ir::BlockBuilderTest::MakeTestEntityType
    - AddDecl
    - DataDecl*::type
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclCollectionTest, FindDeclReturnsExistingDecl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:89,1
    - Dst: FindDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - FindDecl
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclCollectionTest, FindDeclReturnsNullIfNotFound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterSchema
      Src: /src/raksha/src/ir/data_decl_test.cc:32,1
    - Dst: std::string
      Src: /src/raksha/src/ir/data_decl_test.cc:32,1
    - Dst: MakeEntityType
      Src: /src/raksha/src/ir/data_decl_test.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' factory'
    - name
    argTypes:
    - types::TypeFactory
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: raksha::ir::DataDeclTestBase::MakeTestEntityType
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - RegisterSchema
    - std::string
    - MakeEntityType
    linkageType: ''
    returnType: types::Type
    signature: "types::Type MakeTestEntityType(types::TypeFactory& factory,\n                                        absl::string_view
      name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/data_decl_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:41,1
    - Dst: DataDecl::name
      Src: /src/raksha/src/ir/data_decl_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - DataDecl::name
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclTest, PrimitiveTypeDeclConstruction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::BlockBuilderTest::MakeTestEntityType
      Src: /src/raksha/src/ir/data_decl_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:47,1
    - Dst: DataDecl::name
      Src: /src/raksha/src/ir/data_decl_test.cc:47,1
    - Dst: DataDecl::type
      Src: /src/raksha/src/ir/data_decl_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:49,1
    - Dst: kind
      Src: /src/raksha/src/ir/data_decl_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:50,1
    - Dst: static_cast<const types::EntityType&>
      Src: /src/raksha/src/ir/data_decl_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - kind
    - EXPECT_EQ
    - static_cast<const types::EntityType&>
    - raksha::ir::BlockBuilderTest::MakeTestEntityType
    - DataDecl::name
    - DataDecl::type
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclTest, EntityTypeDeclConstruction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:60,1
    - Dst: raksha::ir::BlockBuilderTest::MakeTestEntityType
      Src: /src/raksha/src/ir/data_decl_test.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:62,1
    - Dst: name
      Src: /src/raksha/src/ir/data_decl_test.cc:62,1
    - Dst: type
      Src: /src/raksha/src/ir/data_decl_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:64,1
    - Dst: kind
      Src: /src/raksha/src/ir/data_decl_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:65,1
    - Dst: static_cast<const types::EntityType&>
      Src: /src/raksha/src/ir/data_decl_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - type
    - kind
    - EXPECT_EQ
    - static_cast<const types::EntityType&>
    - raksha::ir::BlockBuilderTest::MakeTestEntityType
    - name
    - AddDecl
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclCollectionTest, AddDeclReturnsAddedDecl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:70,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/data_decl_test.cc:70,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/data_decl_test.cc:71,1
    - Dst: AddDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:72,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/data_decl_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - AddDecl
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclCollectionTest, DuplicateAddDeclCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:77,1
    - Dst: raksha::ir::BlockBuilderTest::MakeTestEntityType
      Src: /src/raksha/src/ir/data_decl_test.cc:78,1
    - Dst: FindDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:80,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/data_decl_test.cc:81,1
    - Dst: DataDecl*::type
      Src: /src/raksha/src/ir/data_decl_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:83,1
    - Dst: kind
      Src: /src/raksha/src/ir/data_decl_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:84,1
    - Dst: static_cast<const types::EntityType&>
      Src: /src/raksha/src/ir/data_decl_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - kind
    - EXPECT_EQ
    - static_cast<const types::EntityType&>
    - FindDecl
    - raksha::ir::BlockBuilderTest::MakeTestEntityType
    - AddDecl
    - DataDecl*::type
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclCollectionTest, FindDeclReturnsExistingDecl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:89,1
    - Dst: FindDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - FindDecl
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclCollectionTest, FindDeclReturnsNullIfNotFound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterSchema
      Src: /src/raksha/src/ir/data_decl_test.cc:32,1
    - Dst: std::string
      Src: /src/raksha/src/ir/data_decl_test.cc:32,1
    - Dst: MakeEntityType
      Src: /src/raksha/src/ir/data_decl_test.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' factory'
    - name
    argTypes:
    - types::TypeFactory
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: raksha::ir::DataDeclTestBase::MakeTestEntityType
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - RegisterSchema
    - std::string
    - MakeEntityType
    linkageType: ''
    returnType: types::Type
    signature: "types::Type MakeTestEntityType(types::TypeFactory& factory,\n                                        absl::string_view
      name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/data_decl_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:41,1
    - Dst: DataDecl::name
      Src: /src/raksha/src/ir/data_decl_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - DataDecl::name
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclTest, PrimitiveTypeDeclConstruction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::BlockBuilderTest::MakeTestEntityType
      Src: /src/raksha/src/ir/data_decl_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:47,1
    - Dst: DataDecl::name
      Src: /src/raksha/src/ir/data_decl_test.cc:47,1
    - Dst: DataDecl::type
      Src: /src/raksha/src/ir/data_decl_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:49,1
    - Dst: kind
      Src: /src/raksha/src/ir/data_decl_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:50,1
    - Dst: static_cast<const types::EntityType&>
      Src: /src/raksha/src/ir/data_decl_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - kind
    - EXPECT_EQ
    - static_cast<const types::EntityType&>
    - raksha::ir::BlockBuilderTest::MakeTestEntityType
    - DataDecl::name
    - DataDecl::type
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclTest, EntityTypeDeclConstruction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:60,1
    - Dst: raksha::ir::BlockBuilderTest::MakeTestEntityType
      Src: /src/raksha/src/ir/data_decl_test.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:62,1
    - Dst: name
      Src: /src/raksha/src/ir/data_decl_test.cc:62,1
    - Dst: type
      Src: /src/raksha/src/ir/data_decl_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:64,1
    - Dst: kind
      Src: /src/raksha/src/ir/data_decl_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:65,1
    - Dst: static_cast<const types::EntityType&>
      Src: /src/raksha/src/ir/data_decl_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - type
    - kind
    - EXPECT_EQ
    - static_cast<const types::EntityType&>
    - raksha::ir::BlockBuilderTest::MakeTestEntityType
    - name
    - AddDecl
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclCollectionTest, AddDeclReturnsAddedDecl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:70,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/data_decl_test.cc:70,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/data_decl_test.cc:71,1
    - Dst: AddDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:72,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/data_decl_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - AddDecl
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclCollectionTest, DuplicateAddDeclCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:77,1
    - Dst: raksha::ir::BlockBuilderTest::MakeTestEntityType
      Src: /src/raksha/src/ir/data_decl_test.cc:78,1
    - Dst: FindDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:80,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/data_decl_test.cc:81,1
    - Dst: DataDecl*::type
      Src: /src/raksha/src/ir/data_decl_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:83,1
    - Dst: kind
      Src: /src/raksha/src/ir/data_decl_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:84,1
    - Dst: static_cast<const types::EntityType&>
      Src: /src/raksha/src/ir/data_decl_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - kind
    - EXPECT_EQ
    - static_cast<const types::EntityType&>
    - FindDecl
    - raksha::ir::BlockBuilderTest::MakeTestEntityType
    - AddDecl
    - DataDecl*::type
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclCollectionTest, FindDeclReturnsExistingDecl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:89,1
    - Dst: FindDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - FindDecl
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclCollectionTest, FindDeclReturnsNullIfNotFound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterSchema
      Src: /src/raksha/src/ir/data_decl_test.cc:32,1
    - Dst: std::string
      Src: /src/raksha/src/ir/data_decl_test.cc:32,1
    - Dst: MakeEntityType
      Src: /src/raksha/src/ir/data_decl_test.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' factory'
    - name
    argTypes:
    - types::TypeFactory
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: raksha::ir::DataDeclTestBase::MakeTestEntityType
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - RegisterSchema
    - std::string
    - MakeEntityType
    linkageType: ''
    returnType: types::Type
    signature: "types::Type MakeTestEntityType(types::TypeFactory& factory,\n                                        absl::string_view
      name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/data_decl_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:41,1
    - Dst: DataDecl::name
      Src: /src/raksha/src/ir/data_decl_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - DataDecl::name
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclTest, PrimitiveTypeDeclConstruction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::BlockBuilderTest::MakeTestEntityType
      Src: /src/raksha/src/ir/data_decl_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:47,1
    - Dst: DataDecl::name
      Src: /src/raksha/src/ir/data_decl_test.cc:47,1
    - Dst: DataDecl::type
      Src: /src/raksha/src/ir/data_decl_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:49,1
    - Dst: kind
      Src: /src/raksha/src/ir/data_decl_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:50,1
    - Dst: static_cast<const types::EntityType&>
      Src: /src/raksha/src/ir/data_decl_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - kind
    - EXPECT_EQ
    - static_cast<const types::EntityType&>
    - raksha::ir::BlockBuilderTest::MakeTestEntityType
    - DataDecl::name
    - DataDecl::type
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclTest, EntityTypeDeclConstruction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:60,1
    - Dst: raksha::ir::BlockBuilderTest::MakeTestEntityType
      Src: /src/raksha/src/ir/data_decl_test.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:62,1
    - Dst: name
      Src: /src/raksha/src/ir/data_decl_test.cc:62,1
    - Dst: type
      Src: /src/raksha/src/ir/data_decl_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:64,1
    - Dst: kind
      Src: /src/raksha/src/ir/data_decl_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:65,1
    - Dst: static_cast<const types::EntityType&>
      Src: /src/raksha/src/ir/data_decl_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - type
    - kind
    - EXPECT_EQ
    - static_cast<const types::EntityType&>
    - raksha::ir::BlockBuilderTest::MakeTestEntityType
    - name
    - AddDecl
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclCollectionTest, AddDeclReturnsAddedDecl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:70,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/data_decl_test.cc:70,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/data_decl_test.cc:71,1
    - Dst: AddDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:72,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/data_decl_test.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - AddDecl
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclCollectionTest, DuplicateAddDeclCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:77,1
    - Dst: raksha::ir::BlockBuilderTest::MakeTestEntityType
      Src: /src/raksha/src/ir/data_decl_test.cc:78,1
    - Dst: FindDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:80,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/data_decl_test.cc:81,1
    - Dst: DataDecl*::type
      Src: /src/raksha/src/ir/data_decl_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:83,1
    - Dst: kind
      Src: /src/raksha/src/ir/data_decl_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:84,1
    - Dst: static_cast<const types::EntityType&>
      Src: /src/raksha/src/ir/data_decl_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - kind
    - EXPECT_EQ
    - static_cast<const types::EntityType&>
    - FindDecl
    - raksha::ir::BlockBuilderTest::MakeTestEntityType
    - AddDecl
    - DataDecl*::type
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclCollectionTest, FindDeclReturnsExistingDecl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/data_decl_test.cc:89,1
    - Dst: FindDecl
      Src: /src/raksha/src/ir/data_decl_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/data_decl_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - FindDecl
    linkageType: ''
    returnType: void
    signature: void TEST_F(DataDeclCollectionTest, FindDeclReturnsNullIfNotFound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/operation_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operation_test.cc:56,1
    - Dst: Operation::parent
      Src: /src/raksha/src/ir/operation_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operation_test.cc:57,1
    - Dst: Operation::op
      Src: /src/raksha/src/ir/operation_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operation_test.cc:58,1
    - Dst: Operation::attributes
      Src: /src/raksha/src/ir/operation_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operation_test.cc:59,1
    - Dst: Operation::inputs
      Src: /src/raksha/src/ir/operation_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operation_test.cc:60,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/operation_test.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/operation_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - EXPECT_EQ
    - Operation::parent
    - Operation::inputs
    - Operation::attributes
    - Operation::op
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperationTest, AccessorsAndToStringReturnCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/operation_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operation_test.cc:56,1
    - Dst: Operation::parent
      Src: /src/raksha/src/ir/operation_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operation_test.cc:57,1
    - Dst: Operation::op
      Src: /src/raksha/src/ir/operation_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operation_test.cc:58,1
    - Dst: Operation::attributes
      Src: /src/raksha/src/ir/operation_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operation_test.cc:59,1
    - Dst: Operation::inputs
      Src: /src/raksha/src/ir/operation_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operation_test.cc:60,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/operation_test.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/operation_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - EXPECT_EQ
    - Operation::parent
    - Operation::inputs
    - Operation::attributes
    - Operation::op
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperationTest, AccessorsAndToStringReturnCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/operation_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operation_test.cc:56,1
    - Dst: Operation::parent
      Src: /src/raksha/src/ir/operation_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operation_test.cc:57,1
    - Dst: Operation::op
      Src: /src/raksha/src/ir/operation_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operation_test.cc:58,1
    - Dst: Operation::attributes
      Src: /src/raksha/src/ir/operation_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operation_test.cc:59,1
    - Dst: Operation::inputs
      Src: /src/raksha/src/ir/operation_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operation_test.cc:60,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/operation_test.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/operation_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - EXPECT_EQ
    - Operation::parent
    - Operation::inputs
    - Operation::attributes
    - Operation::op
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperationTest, AccessorsAndToStringReturnCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/operation_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operation_test.cc:56,1
    - Dst: Operation::parent
      Src: /src/raksha/src/ir/operation_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operation_test.cc:57,1
    - Dst: Operation::op
      Src: /src/raksha/src/ir/operation_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operation_test.cc:58,1
    - Dst: Operation::attributes
      Src: /src/raksha/src/ir/operation_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operation_test.cc:59,1
    - Dst: Operation::inputs
      Src: /src/raksha/src/ir/operation_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/operation_test.cc:60,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/operation_test.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/operation_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - EXPECT_EQ
    - Operation::parent
    - Operation::inputs
    - Operation::attributes
    - Operation::op
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(OperationTest, AccessorsAndToStringReturnCorrectValue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: google::protobuf::util::JsonStringToMessage
      Src: /src/raksha/src/ir/proto_to_ir.h:42,1
    - Dst: auto::ok
      Src: /src/raksha/src/ir/proto_to_ir.h:44,1
    - Dst: LOG
      Src: /src/raksha/src/ir/proto_to_ir.h:45,1
    - Dst: absl::InvalidArgumentError
      Src: /src/raksha/src/ir/proto_to_ir.h:46,1
    - Dst: raksha::ir::ProtoToIR::Convert
      Src: /src/raksha/src/ir/proto_to_ir.h:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' context'
    - irTranslationUnitJsonProto
    argTypes:
    - IRContext
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: raksha::ir::ProtoToIR::Convert
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.h
    functionUses: 7
    functionsReached:
    - raksha::ir::ProtoToIR::Convert
    - auto::ok
    - LOG
    - absl::InvalidArgumentError
    - google::protobuf::util::JsonStringToMessage
    linkageType: ''
    returnType: absl::StatusOr<Result>
    signature: "absl::StatusOr<Result> Convert(\n      IRContext& context, absl::string_view
      irTranslationUnitJsonProto)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: operators
      Src: /src/raksha/src/ir/proto_to_ir.h:55,1
    - Dst: name
      Src: /src/raksha/src/ir/proto_to_ir.h:56,1
    - Dst: IsRegisteredOperator
      Src: /src/raksha/src/ir/proto_to_ir.h:58,1
    - Dst: Operator
      Src: /src/raksha/src/ir/proto_to_ir.h:59,1
    - Dst: RegisterOperator
      Src: /src/raksha/src/ir/proto_to_ir.h:60,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/proto_to_ir.h:60,1
    - Dst: std::move
      Src: /src/raksha/src/ir/proto_to_ir.h:60,1
    - Dst: std::make_unique<SsaNames>
      Src: /src/raksha/src/ir/proto_to_ir.h:64,1
    - Dst: ProtoToIR::PreVisit
      Src: /src/raksha/src/ir/proto_to_ir.h:67,1
    - Dst: top_level_module
      Src: /src/raksha/src/ir/proto_to_ir.h:67,1
    - Dst: ProtoToIR::ToIR
      Src: /src/raksha/src/ir/proto_to_ir.h:69,1
    - Dst: top_level_module
      Src: /src/raksha/src/ir/proto_to_ir.h:69,1
    - Dst: ProtoToIR::PostVisit
      Src: /src/raksha/src/ir/proto_to_ir.h:71,1
    - Dst: top_level_module
      Src: /src/raksha/src/ir/proto_to_ir.h:71,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.h:76,1
    - Dst: second::IsBuilt
      Src: /src/raksha/src/ir/proto_to_ir.h:76,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.h:81,1
    - Dst: second::get
      Src: /src/raksha/src/ir/proto_to_ir.h:81,1
    - Dst: std::move
      Src: /src/raksha/src/ir/proto_to_ir.h:85,1
    - Dst: std::move
      Src: /src/raksha/src/ir/proto_to_ir.h:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' context'
    - ' root'
    argTypes:
    - IRContext
    - proto::IrTranslationUnit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 87
    functionName: raksha::ir::ProtoToIR::Convert
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.h
    functionUses: 7
    functionsReached:
    - ProtoToIR::PreVisit
    - IsRegisteredOperator
    - ProtoToIR::ToIR
    - top_level_module
    - name
    - ProtoToIR::PostVisit
    - second::get
    - operators
    - second::IsBuilt
    - std::move
    - RegisterOperator
    - Operator
    - std::make_unique<Operator>
    - std::make_unique<SsaNames>
    - CHECK
    linkageType: ''
    returnType: Result
    signature: "Result Convert(IRContext& context,\n                        const
      proto::IrTranslationUnit& root)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' context'
    - ' ssa_names'
    argTypes:
    - IRContext
    - SsaNames
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: raksha::ir::ProtoToIR::ProtoToIR
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ProtoToIR(IRContext& context, SsaNames& ssa_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: raksha::ir::ProtoToIR::ProtoToIR
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ProtoToIR(const ProtoToIR&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: '& operator=(const ProtoToIR&)'
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ProtoToIR
    signature: ProtoToIR & operator=(const ProtoToIR&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: raksha::ir::ProtoToIR::ProtoToIR
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ProtoToIR(ProtoToIR&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: '& operator=(ProtoToIR&&)'
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ProtoToIR
    signature: ProtoToIR & operator=(ProtoToIR&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: ~ProtoToIR()
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ProtoToIR()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: google::protobuf::util::JsonStringToMessage
      Src: /src/raksha/src/ir/proto_to_ir.h:42,1
    - Dst: auto::ok
      Src: /src/raksha/src/ir/proto_to_ir.h:44,1
    - Dst: LOG
      Src: /src/raksha/src/ir/proto_to_ir.h:45,1
    - Dst: absl::InvalidArgumentError
      Src: /src/raksha/src/ir/proto_to_ir.h:46,1
    - Dst: raksha::ir::ProtoToIR::Convert
      Src: /src/raksha/src/ir/proto_to_ir.h:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' context'
    - irTranslationUnitJsonProto
    argTypes:
    - IRContext
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: raksha::ir::ProtoToIR::Convert
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.h
    functionUses: 8
    functionsReached:
    - raksha::ir::ProtoToIR::Convert
    - auto::ok
    - LOG
    - absl::InvalidArgumentError
    - google::protobuf::util::JsonStringToMessage
    linkageType: ''
    returnType: absl::StatusOr<Result>
    signature: "absl::StatusOr<Result> Convert(\n      IRContext& context, absl::string_view
      irTranslationUnitJsonProto)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: operators
      Src: /src/raksha/src/ir/proto_to_ir.h:55,1
    - Dst: name
      Src: /src/raksha/src/ir/proto_to_ir.h:56,1
    - Dst: IsRegisteredOperator
      Src: /src/raksha/src/ir/proto_to_ir.h:58,1
    - Dst: Operator
      Src: /src/raksha/src/ir/proto_to_ir.h:59,1
    - Dst: RegisterOperator
      Src: /src/raksha/src/ir/proto_to_ir.h:60,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/proto_to_ir.h:60,1
    - Dst: std::move
      Src: /src/raksha/src/ir/proto_to_ir.h:60,1
    - Dst: std::make_unique<SsaNames>
      Src: /src/raksha/src/ir/proto_to_ir.h:64,1
    - Dst: ProtoToIR::PreVisit
      Src: /src/raksha/src/ir/proto_to_ir.h:67,1
    - Dst: top_level_module
      Src: /src/raksha/src/ir/proto_to_ir.h:67,1
    - Dst: ProtoToIR::ToIR
      Src: /src/raksha/src/ir/proto_to_ir.h:69,1
    - Dst: top_level_module
      Src: /src/raksha/src/ir/proto_to_ir.h:69,1
    - Dst: ProtoToIR::PostVisit
      Src: /src/raksha/src/ir/proto_to_ir.h:71,1
    - Dst: top_level_module
      Src: /src/raksha/src/ir/proto_to_ir.h:71,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.h:76,1
    - Dst: second::IsBuilt
      Src: /src/raksha/src/ir/proto_to_ir.h:76,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/proto_to_ir.h:81,1
    - Dst: second::get
      Src: /src/raksha/src/ir/proto_to_ir.h:81,1
    - Dst: std::move
      Src: /src/raksha/src/ir/proto_to_ir.h:85,1
    - Dst: std::move
      Src: /src/raksha/src/ir/proto_to_ir.h:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' context'
    - ' root'
    argTypes:
    - IRContext
    - proto::IrTranslationUnit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 87
    functionName: raksha::ir::ProtoToIR::Convert
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.h
    functionUses: 8
    functionsReached:
    - ProtoToIR::PreVisit
    - IsRegisteredOperator
    - ProtoToIR::ToIR
    - top_level_module
    - name
    - ProtoToIR::PostVisit
    - second::get
    - operators
    - second::IsBuilt
    - std::move
    - RegisterOperator
    - Operator
    - std::make_unique<Operator>
    - std::make_unique<SsaNames>
    - CHECK
    linkageType: ''
    returnType: Result
    signature: "Result Convert(IRContext& context,\n                        const
      proto::IrTranslationUnit& root)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' context'
    - ' ssa_names'
    argTypes:
    - IRContext
    - SsaNames
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: raksha::ir::ProtoToIR::ProtoToIR
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ProtoToIR(IRContext& context, SsaNames& ssa_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: raksha::ir::ProtoToIR::ProtoToIR
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ProtoToIR(const ProtoToIR&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: '& operator=(const ProtoToIR&)'
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ProtoToIR
    signature: ProtoToIR & operator=(const ProtoToIR&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: raksha::ir::ProtoToIR::ProtoToIR
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ProtoToIR(ProtoToIR&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: '& operator=(ProtoToIR&&)'
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ProtoToIR
    signature: ProtoToIR & operator=(ProtoToIR&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: ~ProtoToIR()
    functionSourceFile: /src/raksha/src/ir/proto_to_ir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ProtoToIR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: ~IRVisitor()
    functionSourceFile: /src/raksha/src/ir/ir_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~IRVisitor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: ~IRVisitor()
    functionSourceFile: /src/raksha/src/ir/ir_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~IRVisitor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/storage.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - absl::string_view
    - types::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: raksha::ir::Storage::Storage
    functionSourceFile: /src/raksha/src/ir/storage.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Storage(absl::string_view name, types::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: raksha::ir::Storage::Storage
    functionSourceFile: /src/raksha/src/ir/storage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Storage(const Storage&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: '& operator=(const Storage&)'
    functionSourceFile: /src/raksha/src/ir/storage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Storage
    signature: Storage & operator=(const Storage&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::ir::Storage::Storage
    functionSourceFile: /src/raksha/src/ir/storage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Storage(Storage&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: '& operator=(Storage&&)'
    functionSourceFile: /src/raksha/src/ir/storage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Storage
    signature: Storage & operator=(Storage&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: ~Storage()
    functionSourceFile: /src/raksha/src/ir/storage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Storage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/ir/storage.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: raksha::ir::Storage::AddInputValue
    functionSourceFile: /src/raksha/src/ir/storage.h
    functionUses: 0
    functionsReached:
    - insert
    linkageType: ''
    returnType: void
    signature: void AddInputValue(Value value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: raksha::ir::Storage::name
    functionSourceFile: /src/raksha/src/ir/storage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: '& type() const'
    functionSourceFile: /src/raksha/src/ir/storage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: types::Type
    signature: types::Type & type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: '& input_values() const'
    functionSourceFile: /src/raksha/src/ir/storage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::flat_hash_set<Value>
    signature: absl::flat_hash_set<Value> & input_values() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/storage.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: raksha::ir::Storage::ToString
    functionSourceFile: /src/raksha/src/ir/storage.h
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/storage.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - absl::string_view
    - types::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: raksha::ir::Storage::Storage
    functionSourceFile: /src/raksha/src/ir/storage.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Storage(absl::string_view name, types::Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: raksha::ir::Storage::Storage
    functionSourceFile: /src/raksha/src/ir/storage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Storage(const Storage&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: '& operator=(const Storage&)'
    functionSourceFile: /src/raksha/src/ir/storage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Storage
    signature: Storage & operator=(const Storage&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::ir::Storage::Storage
    functionSourceFile: /src/raksha/src/ir/storage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Storage(Storage&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: '& operator=(Storage&&)'
    functionSourceFile: /src/raksha/src/ir/storage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Storage
    signature: Storage & operator=(Storage&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: ~Storage()
    functionSourceFile: /src/raksha/src/ir/storage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Storage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/ir/storage.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: raksha::ir::Storage::AddInputValue
    functionSourceFile: /src/raksha/src/ir/storage.h
    functionUses: 0
    functionsReached:
    - insert
    linkageType: ''
    returnType: void
    signature: void AddInputValue(Value value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: raksha::ir::Storage::name
    functionSourceFile: /src/raksha/src/ir/storage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: '& type() const'
    functionSourceFile: /src/raksha/src/ir/storage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: types::Type
    signature: types::Type & type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: '& input_values() const'
    functionSourceFile: /src/raksha/src/ir/storage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::flat_hash_set<Value>
    signature: absl::flat_hash_set<Value> & input_values() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/storage.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: raksha::ir::Storage::ToString
    functionSourceFile: /src/raksha/src/ir/storage.h
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/storage_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:41,1
    - Dst: Storage::name
      Src: /src/raksha/src/ir/storage_test.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:42,1
    - Dst: Storage::type
      Src: /src/raksha/src/ir/storage_test.cc:42,1
    - Dst: RegisterSchema
      Src: /src/raksha/src/ir/storage_test.cc:45,1
    - Dst: MakeEntityType
      Src: /src/raksha/src/ir/storage_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:47,1
    - Dst: Storage::name
      Src: /src/raksha/src/ir/storage_test.cc:47,1
    - Dst: Storage::type
      Src: /src/raksha/src/ir/storage_test.cc:48,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:49,1
    - Dst: kind
      Src: /src/raksha/src/ir/storage_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:50,1
    - Dst: static_cast<const types::EntityType&>
      Src: /src/raksha/src/ir/storage_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 52
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/storage_test.cc
    functionUses: 0
    functionsReached:
    - kind
    - EXPECT_EQ
    - static_cast<const types::EntityType&>
    - MakeEntityType
    - Storage::name
    - ASSERT_EQ
    - MakePrimitiveType
    - Storage::type
    - RegisterSchema
    linkageType: ''
    returnType: void
    signature: void TEST_F(StorageTest, PropertyAccessorsReturnCorrectValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/storage_test.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:56,1
    - Dst: Storage::ToString
      Src: /src/raksha/src/ir/storage_test.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/storage_test.cc
    functionUses: 0
    functionsReached:
    - Storage::ToString
    - EXPECT_EQ
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST_F(StorageTest, ToStringPrintsNameAndType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Value
      Src: /src/raksha/src/ir/storage_test.cc:62,1
    - Dst: Any
      Src: /src/raksha/src/ir/storage_test.cc:62,1
    - Dst: Value
      Src: /src/raksha/src/ir/storage_test.cc:63,1
    - Dst: OperationResult
      Src: /src/raksha/src/ir/storage_test.cc:63,1
    - Dst: Value
      Src: /src/raksha/src/ir/storage_test.cc:64,1
    - Dst: OperationResult
      Src: /src/raksha/src/ir/storage_test.cc:64,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/storage_test.cc:65,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/storage_test.cc:67,1
    - Dst: Storage::input_values
      Src: /src/raksha/src/ir/storage_test.cc:67,1
    - Dst: IsEmpty
      Src: /src/raksha/src/ir/storage_test.cc:67,1
    - Dst: Storage::AddInputValue
      Src: /src/raksha/src/ir/storage_test.cc:68,1
    - Dst: Storage::AddInputValue
      Src: /src/raksha/src/ir/storage_test.cc:69,1
    - Dst: Storage::AddInputValue
      Src: /src/raksha/src/ir/storage_test.cc:70,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/storage_test.cc:71,1
    - Dst: Storage::input_values
      Src: /src/raksha/src/ir/storage_test.cc:72,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/ir/storage_test.cc:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 74
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/storage_test.cc
    functionUses: 0
    functionsReached:
    - IsEmpty
    - Value
    - Any
    - Storage::input_values
    - Storage::AddInputValue
    - EXPECT_THAT
    - MakePrimitiveType
    - UnorderedElementsAre
    - OperationResult
    linkageType: ''
    returnType: void
    signature: void TEST_F(StorageTest, AddInputValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/storage_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:41,1
    - Dst: Storage::name
      Src: /src/raksha/src/ir/storage_test.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:42,1
    - Dst: Storage::type
      Src: /src/raksha/src/ir/storage_test.cc:42,1
    - Dst: RegisterSchema
      Src: /src/raksha/src/ir/storage_test.cc:45,1
    - Dst: MakeEntityType
      Src: /src/raksha/src/ir/storage_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:47,1
    - Dst: Storage::name
      Src: /src/raksha/src/ir/storage_test.cc:47,1
    - Dst: Storage::type
      Src: /src/raksha/src/ir/storage_test.cc:48,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:49,1
    - Dst: kind
      Src: /src/raksha/src/ir/storage_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:50,1
    - Dst: static_cast<const types::EntityType&>
      Src: /src/raksha/src/ir/storage_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 52
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/storage_test.cc
    functionUses: 0
    functionsReached:
    - kind
    - EXPECT_EQ
    - static_cast<const types::EntityType&>
    - MakeEntityType
    - Storage::name
    - ASSERT_EQ
    - MakePrimitiveType
    - Storage::type
    - RegisterSchema
    linkageType: ''
    returnType: void
    signature: void TEST_F(StorageTest, PropertyAccessorsReturnCorrectValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/storage_test.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:56,1
    - Dst: Storage::ToString
      Src: /src/raksha/src/ir/storage_test.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/storage_test.cc
    functionUses: 0
    functionsReached:
    - Storage::ToString
    - EXPECT_EQ
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST_F(StorageTest, ToStringPrintsNameAndType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Value
      Src: /src/raksha/src/ir/storage_test.cc:62,1
    - Dst: Any
      Src: /src/raksha/src/ir/storage_test.cc:62,1
    - Dst: Value
      Src: /src/raksha/src/ir/storage_test.cc:63,1
    - Dst: OperationResult
      Src: /src/raksha/src/ir/storage_test.cc:63,1
    - Dst: Value
      Src: /src/raksha/src/ir/storage_test.cc:64,1
    - Dst: OperationResult
      Src: /src/raksha/src/ir/storage_test.cc:64,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/storage_test.cc:65,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/storage_test.cc:67,1
    - Dst: Storage::input_values
      Src: /src/raksha/src/ir/storage_test.cc:67,1
    - Dst: IsEmpty
      Src: /src/raksha/src/ir/storage_test.cc:67,1
    - Dst: Storage::AddInputValue
      Src: /src/raksha/src/ir/storage_test.cc:68,1
    - Dst: Storage::AddInputValue
      Src: /src/raksha/src/ir/storage_test.cc:69,1
    - Dst: Storage::AddInputValue
      Src: /src/raksha/src/ir/storage_test.cc:70,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/storage_test.cc:71,1
    - Dst: Storage::input_values
      Src: /src/raksha/src/ir/storage_test.cc:72,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/ir/storage_test.cc:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 74
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/storage_test.cc
    functionUses: 0
    functionsReached:
    - IsEmpty
    - Value
    - Any
    - Storage::input_values
    - Storage::AddInputValue
    - EXPECT_THAT
    - MakePrimitiveType
    - UnorderedElementsAre
    - OperationResult
    linkageType: ''
    returnType: void
    signature: void TEST_F(StorageTest, AddInputValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/storage_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:41,1
    - Dst: Storage::name
      Src: /src/raksha/src/ir/storage_test.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:42,1
    - Dst: Storage::type
      Src: /src/raksha/src/ir/storage_test.cc:42,1
    - Dst: RegisterSchema
      Src: /src/raksha/src/ir/storage_test.cc:45,1
    - Dst: MakeEntityType
      Src: /src/raksha/src/ir/storage_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:47,1
    - Dst: Storage::name
      Src: /src/raksha/src/ir/storage_test.cc:47,1
    - Dst: Storage::type
      Src: /src/raksha/src/ir/storage_test.cc:48,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:49,1
    - Dst: kind
      Src: /src/raksha/src/ir/storage_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:50,1
    - Dst: static_cast<const types::EntityType&>
      Src: /src/raksha/src/ir/storage_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 52
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/storage_test.cc
    functionUses: 0
    functionsReached:
    - kind
    - EXPECT_EQ
    - static_cast<const types::EntityType&>
    - MakeEntityType
    - Storage::name
    - ASSERT_EQ
    - MakePrimitiveType
    - Storage::type
    - RegisterSchema
    linkageType: ''
    returnType: void
    signature: void TEST_F(StorageTest, PropertyAccessorsReturnCorrectValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/storage_test.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:56,1
    - Dst: Storage::ToString
      Src: /src/raksha/src/ir/storage_test.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/storage_test.cc
    functionUses: 0
    functionsReached:
    - Storage::ToString
    - EXPECT_EQ
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST_F(StorageTest, ToStringPrintsNameAndType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Value
      Src: /src/raksha/src/ir/storage_test.cc:62,1
    - Dst: Any
      Src: /src/raksha/src/ir/storage_test.cc:62,1
    - Dst: Value
      Src: /src/raksha/src/ir/storage_test.cc:63,1
    - Dst: OperationResult
      Src: /src/raksha/src/ir/storage_test.cc:63,1
    - Dst: Value
      Src: /src/raksha/src/ir/storage_test.cc:64,1
    - Dst: OperationResult
      Src: /src/raksha/src/ir/storage_test.cc:64,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/storage_test.cc:65,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/storage_test.cc:67,1
    - Dst: Storage::input_values
      Src: /src/raksha/src/ir/storage_test.cc:67,1
    - Dst: IsEmpty
      Src: /src/raksha/src/ir/storage_test.cc:67,1
    - Dst: Storage::AddInputValue
      Src: /src/raksha/src/ir/storage_test.cc:68,1
    - Dst: Storage::AddInputValue
      Src: /src/raksha/src/ir/storage_test.cc:69,1
    - Dst: Storage::AddInputValue
      Src: /src/raksha/src/ir/storage_test.cc:70,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/storage_test.cc:71,1
    - Dst: Storage::input_values
      Src: /src/raksha/src/ir/storage_test.cc:72,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/ir/storage_test.cc:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 74
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/storage_test.cc
    functionUses: 0
    functionsReached:
    - IsEmpty
    - Value
    - Any
    - Storage::input_values
    - Storage::AddInputValue
    - EXPECT_THAT
    - MakePrimitiveType
    - UnorderedElementsAre
    - OperationResult
    linkageType: ''
    returnType: void
    signature: void TEST_F(StorageTest, AddInputValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/storage_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:41,1
    - Dst: Storage::name
      Src: /src/raksha/src/ir/storage_test.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:42,1
    - Dst: Storage::type
      Src: /src/raksha/src/ir/storage_test.cc:42,1
    - Dst: RegisterSchema
      Src: /src/raksha/src/ir/storage_test.cc:45,1
    - Dst: MakeEntityType
      Src: /src/raksha/src/ir/storage_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:47,1
    - Dst: Storage::name
      Src: /src/raksha/src/ir/storage_test.cc:47,1
    - Dst: Storage::type
      Src: /src/raksha/src/ir/storage_test.cc:48,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:49,1
    - Dst: kind
      Src: /src/raksha/src/ir/storage_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:50,1
    - Dst: static_cast<const types::EntityType&>
      Src: /src/raksha/src/ir/storage_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 52
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/storage_test.cc
    functionUses: 0
    functionsReached:
    - kind
    - EXPECT_EQ
    - static_cast<const types::EntityType&>
    - MakeEntityType
    - Storage::name
    - ASSERT_EQ
    - MakePrimitiveType
    - Storage::type
    - RegisterSchema
    linkageType: ''
    returnType: void
    signature: void TEST_F(StorageTest, PropertyAccessorsReturnCorrectValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/storage_test.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/storage_test.cc:56,1
    - Dst: Storage::ToString
      Src: /src/raksha/src/ir/storage_test.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/storage_test.cc
    functionUses: 0
    functionsReached:
    - Storage::ToString
    - EXPECT_EQ
    - MakePrimitiveType
    linkageType: ''
    returnType: void
    signature: void TEST_F(StorageTest, ToStringPrintsNameAndType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Value
      Src: /src/raksha/src/ir/storage_test.cc:62,1
    - Dst: Any
      Src: /src/raksha/src/ir/storage_test.cc:62,1
    - Dst: Value
      Src: /src/raksha/src/ir/storage_test.cc:63,1
    - Dst: OperationResult
      Src: /src/raksha/src/ir/storage_test.cc:63,1
    - Dst: Value
      Src: /src/raksha/src/ir/storage_test.cc:64,1
    - Dst: OperationResult
      Src: /src/raksha/src/ir/storage_test.cc:64,1
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/storage_test.cc:65,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/storage_test.cc:67,1
    - Dst: Storage::input_values
      Src: /src/raksha/src/ir/storage_test.cc:67,1
    - Dst: IsEmpty
      Src: /src/raksha/src/ir/storage_test.cc:67,1
    - Dst: Storage::AddInputValue
      Src: /src/raksha/src/ir/storage_test.cc:68,1
    - Dst: Storage::AddInputValue
      Src: /src/raksha/src/ir/storage_test.cc:69,1
    - Dst: Storage::AddInputValue
      Src: /src/raksha/src/ir/storage_test.cc:70,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/storage_test.cc:71,1
    - Dst: Storage::input_values
      Src: /src/raksha/src/ir/storage_test.cc:72,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/ir/storage_test.cc:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 74
    functionName: raksha::ir::TEST_F
    functionSourceFile: /src/raksha/src/ir/storage_test.cc
    functionUses: 0
    functionsReached:
    - IsEmpty
    - Value
    - Any
    - Storage::input_values
    - Storage::AddInputValue
    - EXPECT_THAT
    - MakePrimitiveType
    - UnorderedElementsAre
    - OperationResult
    linkageType: ''
    returnType: void
    signature: void TEST_F(StorageTest, AddInputValues)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::ir::AccessPathSelectorsSet::AccessPathSelectorsSet
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_set.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AccessPathSelectorsSet()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors_set.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - contents
    argTypes:
    - std::vector<AccessPathSelectors>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: raksha::ir::AccessPathSelectorsSet::AccessPathSelectorsSet
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_set.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void AccessPathSelectorsSet(std::vector<AccessPathSelectors> contents)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AccessPathSelectorsSet::inner_vec_::insert
      Src: /src/raksha/src/ir/access_path_selectors_set.h:42,1
    - Dst: AccessPathSelectorsSet::inner_vec_::end
      Src: /src/raksha/src/ir/access_path_selectors_set.h:42,1
    - Dst: std::make_move_iterator
      Src: /src/raksha/src/ir/access_path_selectors_set.h:43,1
    - Dst: AccessPathSelectorsSet::inner_vec_::begin
      Src: /src/raksha/src/ir/access_path_selectors_set.h:43,1
    - Dst: std::make_move_iterator
      Src: /src/raksha/src/ir/access_path_selectors_set.h:44,1
    - Dst: AccessPathSelectorsSet::inner_vec_::end
      Src: /src/raksha/src/ir/access_path_selectors_set.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - set1
    - set2
    argTypes:
    - AccessPathSelectorsSet
    - AccessPathSelectorsSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: raksha::ir::AccessPathSelectorsSet::Union
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_set.h
    functionUses: 2
    functionsReached:
    - std::make_move_iterator
    - AccessPathSelectorsSet::inner_vec_::begin
    - AccessPathSelectorsSet::inner_vec_::end
    - AccessPathSelectorsSet::inner_vec_::insert
    linkageType: ''
    returnType: AccessPathSelectorsSet
    signature: "AccessPathSelectorsSet Union(AccessPathSelectorsSet set1,\n                                      AccessPathSelectorsSet
      set2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::AccessPathSelectorsSet::CreateAbslSet
      Src: /src/raksha/src/ir/access_path_selectors_set.h:55,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors_set.h:55,1
    - Dst: absl::flat_hash_set::contains
      Src: /src/raksha/src/ir/access_path_selectors_set.h:60,1
    - Dst: AccessPathSelectorsSet::inner_vec_::push_back
      Src: /src/raksha/src/ir/access_path_selectors_set.h:61,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors_set.h:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - set1
    - set2
    argTypes:
    - AccessPathSelectorsSet
    - AccessPathSelectorsSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: raksha::ir::AccessPathSelectorsSet::Intersect
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_set.h
    functionUses: 2
    functionsReached:
    - raksha::ir::AccessPathSelectorsSet::CreateAbslSet
    - std::move
    - absl::flat_hash_set::contains
    - AccessPathSelectorsSet::inner_vec_::push_back
    linkageType: ''
    returnType: AccessPathSelectorsSet
    signature: "AccessPathSelectorsSet Intersect(AccessPathSelectorsSet set1,\n                                          AccessPathSelectorsSet
      set2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AccessPathSelectorsSet::inner_vec_::push_back
      Src: /src/raksha/src/ir/access_path_selectors_set.h:75,1
    - Dst: AccessPathSelectors
      Src: /src/raksha/src/ir/access_path_selectors_set.h:76,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors_set.h:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - parent_selector
    - child_set
    argTypes:
    - Selector
    - AccessPathSelectorsSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: raksha::ir::AccessPathSelectorsSet::AddParentToAll
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_set.h
    functionUses: 2
    functionsReached:
    - std::move
    - AccessPathSelectors
    - AccessPathSelectorsSet::inner_vec_::push_back
    linkageType: ''
    returnType: AccessPathSelectorsSet
    signature: "AccessPathSelectorsSet AddParentToAll(\n      Selector parent_selector,
      AccessPathSelectorsSet child_set)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::flat_hash_set<AccessPathSelectors>
      Src: /src/raksha/src/ir/access_path_selectors_set.h:87,1
    - Dst: std::make_move_iterator
      Src: /src/raksha/src/ir/access_path_selectors_set.h:88,1
    - Dst: AccessPathSelectorsSet::inner_vec_::begin
      Src: /src/raksha/src/ir/access_path_selectors_set.h:88,1
    - Dst: std::make_move_iterator
      Src: /src/raksha/src/ir/access_path_selectors_set.h:89,1
    - Dst: AccessPathSelectorsSet::inner_vec_::end
      Src: /src/raksha/src/ir/access_path_selectors_set.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - original_set
    argTypes:
    - AccessPathSelectorsSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: raksha::ir::AccessPathSelectorsSet::CreateAbslSet
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_set.h
    functionUses: 7
    functionsReached:
    - std::make_move_iterator
    - AccessPathSelectorsSet::inner_vec_::begin
    - absl::flat_hash_set<AccessPathSelectors>
    - AccessPathSelectorsSet::inner_vec_::end
    linkageType: ''
    returnType: absl::flat_hash_set<AccessPathSelectors>
    signature: "absl::flat_hash_set<AccessPathSelectors> CreateAbslSet(\n      AccessPathSelectorsSet
      original_set)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::ir::AccessPathSelectorsSet::AccessPathSelectorsSet
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_set.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AccessPathSelectorsSet()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors_set.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - contents
    argTypes:
    - std::vector<AccessPathSelectors>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: raksha::ir::AccessPathSelectorsSet::AccessPathSelectorsSet
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_set.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void AccessPathSelectorsSet(std::vector<AccessPathSelectors> contents)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AccessPathSelectorsSet::inner_vec_::insert
      Src: /src/raksha/src/ir/access_path_selectors_set.h:42,1
    - Dst: AccessPathSelectorsSet::inner_vec_::end
      Src: /src/raksha/src/ir/access_path_selectors_set.h:42,1
    - Dst: std::make_move_iterator
      Src: /src/raksha/src/ir/access_path_selectors_set.h:43,1
    - Dst: AccessPathSelectorsSet::inner_vec_::begin
      Src: /src/raksha/src/ir/access_path_selectors_set.h:43,1
    - Dst: std::make_move_iterator
      Src: /src/raksha/src/ir/access_path_selectors_set.h:44,1
    - Dst: AccessPathSelectorsSet::inner_vec_::end
      Src: /src/raksha/src/ir/access_path_selectors_set.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - set1
    - set2
    argTypes:
    - AccessPathSelectorsSet
    - AccessPathSelectorsSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: raksha::ir::AccessPathSelectorsSet::Union
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_set.h
    functionUses: 2
    functionsReached:
    - std::make_move_iterator
    - AccessPathSelectorsSet::inner_vec_::begin
    - AccessPathSelectorsSet::inner_vec_::end
    - AccessPathSelectorsSet::inner_vec_::insert
    linkageType: ''
    returnType: AccessPathSelectorsSet
    signature: "AccessPathSelectorsSet Union(AccessPathSelectorsSet set1,\n                                      AccessPathSelectorsSet
      set2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::AccessPathSelectorsSet::CreateAbslSet
      Src: /src/raksha/src/ir/access_path_selectors_set.h:55,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors_set.h:55,1
    - Dst: absl::flat_hash_set::contains
      Src: /src/raksha/src/ir/access_path_selectors_set.h:60,1
    - Dst: AccessPathSelectorsSet::inner_vec_::push_back
      Src: /src/raksha/src/ir/access_path_selectors_set.h:61,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors_set.h:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - set1
    - set2
    argTypes:
    - AccessPathSelectorsSet
    - AccessPathSelectorsSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: raksha::ir::AccessPathSelectorsSet::Intersect
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_set.h
    functionUses: 2
    functionsReached:
    - raksha::ir::AccessPathSelectorsSet::CreateAbslSet
    - std::move
    - absl::flat_hash_set::contains
    - AccessPathSelectorsSet::inner_vec_::push_back
    linkageType: ''
    returnType: AccessPathSelectorsSet
    signature: "AccessPathSelectorsSet Intersect(AccessPathSelectorsSet set1,\n                                          AccessPathSelectorsSet
      set2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AccessPathSelectorsSet::inner_vec_::push_back
      Src: /src/raksha/src/ir/access_path_selectors_set.h:75,1
    - Dst: AccessPathSelectors
      Src: /src/raksha/src/ir/access_path_selectors_set.h:76,1
    - Dst: std::move
      Src: /src/raksha/src/ir/access_path_selectors_set.h:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - parent_selector
    - child_set
    argTypes:
    - Selector
    - AccessPathSelectorsSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: raksha::ir::AccessPathSelectorsSet::AddParentToAll
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_set.h
    functionUses: 2
    functionsReached:
    - std::move
    - AccessPathSelectors
    - AccessPathSelectorsSet::inner_vec_::push_back
    linkageType: ''
    returnType: AccessPathSelectorsSet
    signature: "AccessPathSelectorsSet AddParentToAll(\n      Selector parent_selector,
      AccessPathSelectorsSet child_set)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::flat_hash_set<AccessPathSelectors>
      Src: /src/raksha/src/ir/access_path_selectors_set.h:87,1
    - Dst: std::make_move_iterator
      Src: /src/raksha/src/ir/access_path_selectors_set.h:88,1
    - Dst: AccessPathSelectorsSet::inner_vec_::begin
      Src: /src/raksha/src/ir/access_path_selectors_set.h:88,1
    - Dst: std::make_move_iterator
      Src: /src/raksha/src/ir/access_path_selectors_set.h:89,1
    - Dst: AccessPathSelectorsSet::inner_vec_::end
      Src: /src/raksha/src/ir/access_path_selectors_set.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - original_set
    argTypes:
    - AccessPathSelectorsSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: raksha::ir::AccessPathSelectorsSet::CreateAbslSet
    functionSourceFile: /src/raksha/src/ir/access_path_selectors_set.h
    functionUses: 8
    functionsReached:
    - std::make_move_iterator
    - AccessPathSelectorsSet::inner_vec_::begin
    - absl::flat_hash_set<AccessPathSelectors>
    - AccessPathSelectorsSet::inner_vec_::end
    linkageType: ''
    returnType: absl::flat_hash_set<AccessPathSelectors>
    signature: "absl::flat_hash_set<AccessPathSelectors> CreateAbslSet(\n      AccessPathSelectorsSet
      original_set)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(IntAttributeKindTest, ConstantkAttributeKindIsInt64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:31,1
    - Dst: raksha::ir::Int64Attribute::Create
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:33,1
    - Dst: auto::kind
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:34,1
    - Dst: auto::ToString
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - auto::kind
    - auto::ToString
    - raksha::ir::Int64Attribute::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntAttributeTest, KindAndToStringWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:48,1
    - Dst: raksha::ir::Int64Attribute::Create
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:49,1
    - Dst: raksha::ir::Int64Attribute::Create
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::Int64Attribute::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntAttributeComparatorTest, EqualityWorksAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(IntAttributeKindTest, ConstantkAttributeKindIsInt64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:31,1
    - Dst: raksha::ir::Int64Attribute::Create
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:33,1
    - Dst: auto::kind
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:34,1
    - Dst: auto::ToString
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - auto::kind
    - auto::ToString
    - raksha::ir::Int64Attribute::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntAttributeTest, KindAndToStringWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:48,1
    - Dst: raksha::ir::Int64Attribute::Create
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:49,1
    - Dst: raksha::ir::Int64Attribute::Create
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::Int64Attribute::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntAttributeComparatorTest, EqualityWorksAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(IntAttributeKindTest, ConstantkAttributeKindIsInt64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:31,1
    - Dst: raksha::ir::Int64Attribute::Create
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:33,1
    - Dst: auto::kind
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:34,1
    - Dst: auto::ToString
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - auto::kind
    - auto::ToString
    - raksha::ir::Int64Attribute::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntAttributeTest, KindAndToStringWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:48,1
    - Dst: raksha::ir::Int64Attribute::Create
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:49,1
    - Dst: raksha::ir::Int64Attribute::Create
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::Int64Attribute::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntAttributeComparatorTest, EqualityWorksAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(IntAttributeKindTest, ConstantkAttributeKindIsInt64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:31,1
    - Dst: raksha::ir::Int64Attribute::Create
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:33,1
    - Dst: auto::kind
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:34,1
    - Dst: auto::ToString
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - auto::kind
    - auto::ToString
    - raksha::ir::Int64Attribute::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntAttributeTest, KindAndToStringWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:48,1
    - Dst: raksha::ir::Int64Attribute::Create
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:49,1
    - Dst: raksha::ir::Int64Attribute::Create
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/int_attribute_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::Int64Attribute::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IntAttributeComparatorTest, EqualityWorksAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: intrusive_ptr<const FloatAttribute>
      Src: /src/raksha/src/ir/attributes/float_attribute.h:33,1
    - Dst: FloatAttribute::FloatAttribute
      Src: /src/raksha/src/ir/attributes/float_attribute.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: raksha::ir::FloatAttribute::Create
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute.h
    functionUses: 0
    functionsReached:
    - intrusive_ptr<const FloatAttribute>
    - FloatAttribute::FloatAttribute
    linkageType: ''
    returnType: intrusive_ptr<const FloatAttribute>
    signature: intrusive_ptr<const FloatAttribute> Create(double value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: raksha::ir::FloatAttribute::value
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double value() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::FloatAttribute::kind
      Src: /src/raksha/src/ir/attributes/float_attribute.h:39,1
    - Dst: kind
      Src: /src/raksha/src/ir/attributes/float_attribute.h:39,1
    - Dst: static_cast<const FloatAttribute&>
      Src: /src/raksha/src/ir/attributes/float_attribute.h:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AttributeBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: raksha::ir::FloatAttribute::IsEqual
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute.h
    functionUses: 0
    functionsReached:
    - raksha::ir::FloatAttribute::kind
    - static_cast<const FloatAttribute&>
    - kind
    linkageType: ''
    returnType: bool
    signature: bool IsEqual(const AttributeBase& other) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/attributes/float_attribute.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: raksha::ir::FloatAttribute::ToString
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute.h
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: raksha::ir::FloatAttribute::FloatAttribute
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FloatAttribute(double value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/raksha/src/ir/attributes/float_attribute.h:55,1
    - Dst: value
      Src: /src/raksha/src/ir/attributes/float_attribute.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - FloatAttribute
    - FloatAttribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: operator==(const FloatAttribute& lhs, const FloatAttribute& rhs)
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute.h
    functionUses: 0
    functionsReached:
    - value
    linkageType: ''
    returnType: bool
    signature: bool operator==(const FloatAttribute& lhs, const FloatAttribute& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: intrusive_ptr<const FloatAttribute>
      Src: /src/raksha/src/ir/attributes/float_attribute.h:33,1
    - Dst: FloatAttribute::FloatAttribute
      Src: /src/raksha/src/ir/attributes/float_attribute.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: raksha::ir::FloatAttribute::Create
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute.h
    functionUses: 0
    functionsReached:
    - intrusive_ptr<const FloatAttribute>
    - FloatAttribute::FloatAttribute
    linkageType: ''
    returnType: intrusive_ptr<const FloatAttribute>
    signature: intrusive_ptr<const FloatAttribute> Create(double value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: raksha::ir::FloatAttribute::value
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double value() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::FloatAttribute::kind
      Src: /src/raksha/src/ir/attributes/float_attribute.h:39,1
    - Dst: kind
      Src: /src/raksha/src/ir/attributes/float_attribute.h:39,1
    - Dst: static_cast<const FloatAttribute&>
      Src: /src/raksha/src/ir/attributes/float_attribute.h:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AttributeBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: raksha::ir::FloatAttribute::IsEqual
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute.h
    functionUses: 0
    functionsReached:
    - raksha::ir::FloatAttribute::kind
    - static_cast<const FloatAttribute&>
    - kind
    linkageType: ''
    returnType: bool
    signature: bool IsEqual(const AttributeBase& other) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/attributes/float_attribute.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: raksha::ir::FloatAttribute::ToString
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute.h
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: raksha::ir::FloatAttribute::FloatAttribute
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FloatAttribute(double value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/raksha/src/ir/attributes/float_attribute.h:55,1
    - Dst: value
      Src: /src/raksha/src/ir/attributes/float_attribute.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - FloatAttribute
    - FloatAttribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: operator==(const FloatAttribute& lhs, const FloatAttribute& rhs)
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute.h
    functionUses: 0
    functionsReached:
    - value
    linkageType: ''
    returnType: bool
    signature: bool operator==(const FloatAttribute& lhs, const FloatAttribute& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: intrusive_ptr<const Int64Attribute>
      Src: /src/raksha/src/ir/attributes/int_attribute.h:33,1
    - Dst: Int64Attribute::Int64Attribute
      Src: /src/raksha/src/ir/attributes/int_attribute.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: raksha::ir::Int64Attribute::Create
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute.h
    functionUses: 8
    functionsReached:
    - Int64Attribute::Int64Attribute
    - intrusive_ptr<const Int64Attribute>
    linkageType: ''
    returnType: intrusive_ptr<const Int64Attribute>
    signature: intrusive_ptr<const Int64Attribute> Create(int64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: raksha::ir::Int64Attribute::value
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t value() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::Int64Attribute::kind
      Src: /src/raksha/src/ir/attributes/int_attribute.h:39,1
    - Dst: kind
      Src: /src/raksha/src/ir/attributes/int_attribute.h:39,1
    - Dst: static_cast<const Int64Attribute&>
      Src: /src/raksha/src/ir/attributes/int_attribute.h:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AttributeBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: raksha::ir::Int64Attribute::IsEqual
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute.h
    functionUses: 0
    functionsReached:
    - kind
    - raksha::ir::Int64Attribute::kind
    - static_cast<const Int64Attribute&>
    linkageType: ''
    returnType: bool
    signature: bool IsEqual(const AttributeBase& other) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/attributes/int_attribute.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: raksha::ir::Int64Attribute::ToString
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute.h
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: raksha::ir::Int64Attribute::Int64Attribute
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Int64Attribute(int64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/raksha/src/ir/attributes/int_attribute.h:55,1
    - Dst: value
      Src: /src/raksha/src/ir/attributes/int_attribute.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Int64Attribute
    - Int64Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: operator==(const Int64Attribute& lhs, const Int64Attribute& rhs)
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute.h
    functionUses: 0
    functionsReached:
    - value
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Int64Attribute& lhs, const Int64Attribute& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: intrusive_ptr<const Int64Attribute>
      Src: /src/raksha/src/ir/attributes/int_attribute.h:33,1
    - Dst: Int64Attribute::Int64Attribute
      Src: /src/raksha/src/ir/attributes/int_attribute.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: raksha::ir::Int64Attribute::Create
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute.h
    functionUses: 8
    functionsReached:
    - Int64Attribute::Int64Attribute
    - intrusive_ptr<const Int64Attribute>
    linkageType: ''
    returnType: intrusive_ptr<const Int64Attribute>
    signature: intrusive_ptr<const Int64Attribute> Create(int64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: raksha::ir::Int64Attribute::value
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t value() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::Int64Attribute::kind
      Src: /src/raksha/src/ir/attributes/int_attribute.h:39,1
    - Dst: kind
      Src: /src/raksha/src/ir/attributes/int_attribute.h:39,1
    - Dst: static_cast<const Int64Attribute&>
      Src: /src/raksha/src/ir/attributes/int_attribute.h:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AttributeBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: raksha::ir::Int64Attribute::IsEqual
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute.h
    functionUses: 0
    functionsReached:
    - kind
    - raksha::ir::Int64Attribute::kind
    - static_cast<const Int64Attribute&>
    linkageType: ''
    returnType: bool
    signature: bool IsEqual(const AttributeBase& other) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/attributes/int_attribute.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: raksha::ir::Int64Attribute::ToString
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute.h
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: raksha::ir::Int64Attribute::Int64Attribute
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Int64Attribute(int64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/raksha/src/ir/attributes/int_attribute.h:55,1
    - Dst: value
      Src: /src/raksha/src/ir/attributes/int_attribute.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Int64Attribute
    - Int64Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: operator==(const Int64Attribute& lhs, const Int64Attribute& rhs)
    functionSourceFile: /src/raksha/src/ir/attributes/int_attribute.h
    functionUses: 0
    functionsReached:
    - value
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Int64Attribute& lhs, const Int64Attribute& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:47,1
    - Dst: Attribute::Create<FloatAttribute>
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:47,1
    - Dst: raksha::ir::FloatAttribute::Create
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: raksha::ir::CreateTestAttribute
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached:
    - Attribute::Create<FloatAttribute>
    - raksha::ir::FloatAttribute::Create
    - std::make_pair
    linkageType: ''
    returnType: std::pair<Attribute, intrusive_ptr<const FloatAttribute>>
    signature: std::pair<Attribute, intrusive_ptr<const FloatAttribute>> CreateTestAttribute()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:54,1
    - Dst: Attribute::Create<Int64Attribute>
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:54,1
    - Dst: raksha::ir::Int64Attribute::Create
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: raksha::ir::CreateTestAttribute
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached:
    - std::make_pair
    - Attribute::Create<Int64Attribute>
    - raksha::ir::Int64Attribute::Create
    linkageType: ''
    returnType: std::pair<Attribute, intrusive_ptr<const Int64Attribute>>
    signature: std::pair<Attribute, intrusive_ptr<const Int64Attribute>> CreateTestAttribute()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:61,1
    - Dst: Attribute::Create<StringAttribute>
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:61,1
    - Dst: raksha::ir::StringAttribute::Create
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: raksha::ir::CreateTestAttribute
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached:
    - Attribute::Create<StringAttribute>
    - std::make_pair
    - raksha::ir::StringAttribute::Create
    linkageType: ''
    returnType: std::pair<Attribute, intrusive_ptr<const StringAttribute>>
    signature: std::pair<Attribute, intrusive_ptr<const StringAttribute>> CreateTestAttribute()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - attribute
    argTypes:
    - int
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: raksha::ir::AttributeWithId
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AttributeWithId(int id, Attribute attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AttributeEqualityTest, EqualityReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::CreateTestAttribute
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:98,1
    - Dst: template GetIf<TypeParam>
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:100,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: raksha::ir::TYPED_TEST
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::CreateTestAttribute
    - EXPECT_EQ
    - ASSERT_NE
    - template GetIf<TypeParam>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AttributeTest, ConstructorAndAsConversionWorksCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::CreateTestAttribute
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:107,1
    - Dst: GetIf
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::CreateTestAttribute
    - EXPECT_EQ
    - GetIf
    linkageType: ''
    returnType: void
    signature: void TEST(AttributeAsMethodTest, IncorrectTypeReturnsNullptrFloatIsNotString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::CreateTestAttribute
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:112,1
    - Dst: GetIf
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::CreateTestAttribute
    - EXPECT_EQ
    - GetIf
    linkageType: ''
    returnType: void
    signature: void TEST(AttributeAsMethodTest, IncorrectTypeReturnsNullptrIntIsNotString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:47,1
    - Dst: Attribute::Create<FloatAttribute>
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:47,1
    - Dst: raksha::ir::FloatAttribute::Create
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: raksha::ir::CreateTestAttribute
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 3
    functionsReached:
    - Attribute::Create<FloatAttribute>
    - raksha::ir::FloatAttribute::Create
    - std::make_pair
    linkageType: ''
    returnType: std::pair<Attribute, intrusive_ptr<const FloatAttribute>>
    signature: std::pair<Attribute, intrusive_ptr<const FloatAttribute>> CreateTestAttribute()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:54,1
    - Dst: Attribute::Create<Int64Attribute>
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:54,1
    - Dst: raksha::ir::Int64Attribute::Create
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: raksha::ir::CreateTestAttribute
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 3
    functionsReached:
    - std::make_pair
    - Attribute::Create<Int64Attribute>
    - raksha::ir::Int64Attribute::Create
    linkageType: ''
    returnType: std::pair<Attribute, intrusive_ptr<const Int64Attribute>>
    signature: std::pair<Attribute, intrusive_ptr<const Int64Attribute>> CreateTestAttribute()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:61,1
    - Dst: Attribute::Create<StringAttribute>
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:61,1
    - Dst: raksha::ir::StringAttribute::Create
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: raksha::ir::CreateTestAttribute
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 3
    functionsReached:
    - Attribute::Create<StringAttribute>
    - std::make_pair
    - raksha::ir::StringAttribute::Create
    linkageType: ''
    returnType: std::pair<Attribute, intrusive_ptr<const StringAttribute>>
    signature: std::pair<Attribute, intrusive_ptr<const StringAttribute>> CreateTestAttribute()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - attribute
    argTypes:
    - int
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: raksha::ir::AttributeWithId
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AttributeWithId(int id, Attribute attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AttributeEqualityTest, EqualityReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::CreateTestAttribute
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:98,1
    - Dst: template GetIf<TypeParam>
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:100,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: raksha::ir::TYPED_TEST
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::CreateTestAttribute
    - EXPECT_EQ
    - ASSERT_NE
    - template GetIf<TypeParam>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AttributeTest, ConstructorAndAsConversionWorksCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::CreateTestAttribute
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:107,1
    - Dst: GetIf
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::CreateTestAttribute
    - EXPECT_EQ
    - GetIf
    linkageType: ''
    returnType: void
    signature: void TEST(AttributeAsMethodTest, IncorrectTypeReturnsNullptrFloatIsNotString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::CreateTestAttribute
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:112,1
    - Dst: GetIf
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::CreateTestAttribute
    - EXPECT_EQ
    - GetIf
    linkageType: ''
    returnType: void
    signature: void TEST(AttributeAsMethodTest, IncorrectTypeReturnsNullptrIntIsNotString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:47,1
    - Dst: Attribute::Create<FloatAttribute>
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:47,1
    - Dst: raksha::ir::FloatAttribute::Create
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: raksha::ir::CreateTestAttribute
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 6
    functionsReached:
    - Attribute::Create<FloatAttribute>
    - raksha::ir::FloatAttribute::Create
    - std::make_pair
    linkageType: ''
    returnType: std::pair<Attribute, intrusive_ptr<const FloatAttribute>>
    signature: std::pair<Attribute, intrusive_ptr<const FloatAttribute>> CreateTestAttribute()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:54,1
    - Dst: Attribute::Create<Int64Attribute>
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:54,1
    - Dst: raksha::ir::Int64Attribute::Create
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: raksha::ir::CreateTestAttribute
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 6
    functionsReached:
    - std::make_pair
    - Attribute::Create<Int64Attribute>
    - raksha::ir::Int64Attribute::Create
    linkageType: ''
    returnType: std::pair<Attribute, intrusive_ptr<const Int64Attribute>>
    signature: std::pair<Attribute, intrusive_ptr<const Int64Attribute>> CreateTestAttribute()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:61,1
    - Dst: Attribute::Create<StringAttribute>
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:61,1
    - Dst: raksha::ir::StringAttribute::Create
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: raksha::ir::CreateTestAttribute
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 6
    functionsReached:
    - Attribute::Create<StringAttribute>
    - std::make_pair
    - raksha::ir::StringAttribute::Create
    linkageType: ''
    returnType: std::pair<Attribute, intrusive_ptr<const StringAttribute>>
    signature: std::pair<Attribute, intrusive_ptr<const StringAttribute>> CreateTestAttribute()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - attribute
    argTypes:
    - int
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: raksha::ir::AttributeWithId
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AttributeWithId(int id, Attribute attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AttributeEqualityTest, EqualityReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::CreateTestAttribute
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:98,1
    - Dst: template GetIf<TypeParam>
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:100,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: raksha::ir::TYPED_TEST
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::CreateTestAttribute
    - EXPECT_EQ
    - ASSERT_NE
    - template GetIf<TypeParam>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AttributeTest, ConstructorAndAsConversionWorksCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::CreateTestAttribute
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:107,1
    - Dst: GetIf
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::CreateTestAttribute
    - EXPECT_EQ
    - GetIf
    linkageType: ''
    returnType: void
    signature: void TEST(AttributeAsMethodTest, IncorrectTypeReturnsNullptrFloatIsNotString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::CreateTestAttribute
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:112,1
    - Dst: GetIf
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::CreateTestAttribute
    - EXPECT_EQ
    - GetIf
    linkageType: ''
    returnType: void
    signature: void TEST(AttributeAsMethodTest, IncorrectTypeReturnsNullptrIntIsNotString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:47,1
    - Dst: Attribute::Create<FloatAttribute>
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:47,1
    - Dst: raksha::ir::FloatAttribute::Create
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: raksha::ir::CreateTestAttribute
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 9
    functionsReached:
    - Attribute::Create<FloatAttribute>
    - raksha::ir::FloatAttribute::Create
    - std::make_pair
    linkageType: ''
    returnType: std::pair<Attribute, intrusive_ptr<const FloatAttribute>>
    signature: std::pair<Attribute, intrusive_ptr<const FloatAttribute>> CreateTestAttribute()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:54,1
    - Dst: Attribute::Create<Int64Attribute>
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:54,1
    - Dst: raksha::ir::Int64Attribute::Create
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: raksha::ir::CreateTestAttribute
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 9
    functionsReached:
    - std::make_pair
    - Attribute::Create<Int64Attribute>
    - raksha::ir::Int64Attribute::Create
    linkageType: ''
    returnType: std::pair<Attribute, intrusive_ptr<const Int64Attribute>>
    signature: std::pair<Attribute, intrusive_ptr<const Int64Attribute>> CreateTestAttribute()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:61,1
    - Dst: Attribute::Create<StringAttribute>
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:61,1
    - Dst: raksha::ir::StringAttribute::Create
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: raksha::ir::CreateTestAttribute
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 9
    functionsReached:
    - Attribute::Create<StringAttribute>
    - std::make_pair
    - raksha::ir::StringAttribute::Create
    linkageType: ''
    returnType: std::pair<Attribute, intrusive_ptr<const StringAttribute>>
    signature: std::pair<Attribute, intrusive_ptr<const StringAttribute>> CreateTestAttribute()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - attribute
    argTypes:
    - int
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: raksha::ir::AttributeWithId
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AttributeWithId(int id, Attribute attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AttributeEqualityTest, EqualityReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::CreateTestAttribute
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:98,1
    - Dst: template GetIf<TypeParam>
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:100,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: raksha::ir::TYPED_TEST
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::CreateTestAttribute
    - EXPECT_EQ
    - ASSERT_NE
    - template GetIf<TypeParam>
    linkageType: ''
    returnType: void
    signature: void TYPED_TEST(AttributeTest, ConstructorAndAsConversionWorksCorrectly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::CreateTestAttribute
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:107,1
    - Dst: GetIf
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::CreateTestAttribute
    - EXPECT_EQ
    - GetIf
    linkageType: ''
    returnType: void
    signature: void TEST(AttributeAsMethodTest, IncorrectTypeReturnsNullptrFloatIsNotString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::CreateTestAttribute
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:112,1
    - Dst: GetIf
      Src: /src/raksha/src/ir/attributes/attribute_test.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/attributes/attribute_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::CreateTestAttribute
    - EXPECT_EQ
    - GetIf
    linkageType: ''
    returnType: void
    signature: void TEST(AttributeAsMethodTest, IncorrectTypeReturnsNullptrIntIsNotString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(FloatAttributeKindTest, ConstantkAttributeKindIsFloat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:31,1
    - Dst: raksha::ir::FloatAttribute::Create
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:33,1
    - Dst: auto::kind
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:34,1
    - Dst: auto::ToString
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - auto::kind
    - auto::ToString
    - raksha::ir::FloatAttribute::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(FloatAttributeTest, KindAndToStringWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:48,1
    - Dst: raksha::ir::FloatAttribute::Create
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:49,1
    - Dst: raksha::ir::FloatAttribute::Create
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::FloatAttribute::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(FloatAttributeComparatorTest, EqualityWorksAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(FloatAttributeKindTest, ConstantkAttributeKindIsFloat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:31,1
    - Dst: raksha::ir::FloatAttribute::Create
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:33,1
    - Dst: auto::kind
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:34,1
    - Dst: auto::ToString
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - auto::kind
    - auto::ToString
    - raksha::ir::FloatAttribute::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(FloatAttributeTest, KindAndToStringWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:48,1
    - Dst: raksha::ir::FloatAttribute::Create
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:49,1
    - Dst: raksha::ir::FloatAttribute::Create
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::FloatAttribute::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(FloatAttributeComparatorTest, EqualityWorksAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(FloatAttributeKindTest, ConstantkAttributeKindIsFloat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:31,1
    - Dst: raksha::ir::FloatAttribute::Create
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:33,1
    - Dst: auto::kind
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:34,1
    - Dst: auto::ToString
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - auto::kind
    - auto::ToString
    - raksha::ir::FloatAttribute::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(FloatAttributeTest, KindAndToStringWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:48,1
    - Dst: raksha::ir::FloatAttribute::Create
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:49,1
    - Dst: raksha::ir::FloatAttribute::Create
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::FloatAttribute::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(FloatAttributeComparatorTest, EqualityWorksAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(FloatAttributeKindTest, ConstantkAttributeKindIsFloat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:31,1
    - Dst: raksha::ir::FloatAttribute::Create
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:33,1
    - Dst: auto::kind
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:34,1
    - Dst: auto::ToString
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - auto::kind
    - auto::ToString
    - raksha::ir::FloatAttribute::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(FloatAttributeTest, KindAndToStringWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:48,1
    - Dst: raksha::ir::FloatAttribute::Create
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:49,1
    - Dst: raksha::ir::FloatAttribute::Create
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/float_attribute_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/float_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::FloatAttribute::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(FloatAttributeComparatorTest, EqualityWorksAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kind
    argTypes:
    - Kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: raksha::ir::AttributeBase::AttributeBase
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AttributeBase(Kind kind)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: raksha::ir::AttributeBase::AttributeBase
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AttributeBase(const AttributeBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: '& operator=(const AttributeBase&)'
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AttributeBase
    signature: AttributeBase & operator=(const AttributeBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::ir::AttributeBase::AttributeBase
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AttributeBase(AttributeBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: '& operator=(AttributeBase&&)'
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AttributeBase
    signature: AttributeBase & operator=(AttributeBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: ~AttributeBase()
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~AttributeBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: raksha::ir::AttributeBase::kind
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Kind
    signature: Kind kind() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::IfcTags::Create
      Src: /src/raksha/src/ir/attributes/attribute.h:57,1
    - Dst: std::forward<Args>
      Src: /src/raksha/src/ir/attributes/attribute.h:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: raksha::ir::Attribute::Create
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    - raksha::analysis::taint::IfcTags::Create
    linkageType: ''
    returnType: Attribute
    signature: Attribute Create(Args&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kind
      Src: /src/raksha/src/ir/attributes/attribute.h:64,1
    - Dst: static_cast<const T*>
      Src: /src/raksha/src/ir/attributes/attribute.h:66,1
    - Dst: get
      Src: /src/raksha/src/ir/attributes/attribute.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: raksha::ir::Attribute::GetIf
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 0
    functionsReached:
    - kind
    - get
    - static_cast<const T*>
    linkageType: ''
    returnType: intrusive_ptr<const T>
    signature: intrusive_ptr<const T> GetIf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::Attribute::ToString
      Src: /src/raksha/src/ir/attributes/attribute.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: raksha::ir::Attribute::ToString
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 1
    functionsReached:
    - raksha::ir::Attribute::ToString
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/attributes/attribute.h:80,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/attributes/attribute.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - intrusive_ptr<const T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: raksha::ir::Attribute::Attribute
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 0
    functionsReached:
    - std::move
    - CHECK
    linkageType: ''
    returnType: void
    signature: void Attribute(intrusive_ptr<const T> value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/attributes/attribute.h:90,1
    - Dst: value_::IsEqual
      Src: /src/raksha/src/ir/attributes/attribute.h:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Attribute
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: operator==(const Attribute& lhs, const Attribute& rhs)
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 0
    functionsReached:
    - value_::IsEqual
    - CHECK
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Attribute& lhs, const Attribute& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kind
    argTypes:
    - Kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: raksha::ir::AttributeBase::AttributeBase
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AttributeBase(Kind kind)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: raksha::ir::AttributeBase::AttributeBase
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AttributeBase(const AttributeBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: '& operator=(const AttributeBase&)'
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AttributeBase
    signature: AttributeBase & operator=(const AttributeBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::ir::AttributeBase::AttributeBase
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AttributeBase(AttributeBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: '& operator=(AttributeBase&&)'
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AttributeBase
    signature: AttributeBase & operator=(AttributeBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: ~AttributeBase()
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~AttributeBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: raksha::ir::AttributeBase::kind
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Kind
    signature: Kind kind() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::analysis::taint::IfcTags::Create
      Src: /src/raksha/src/ir/attributes/attribute.h:57,1
    - Dst: std::forward<Args>
      Src: /src/raksha/src/ir/attributes/attribute.h:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: raksha::ir::Attribute::Create
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    - raksha::analysis::taint::IfcTags::Create
    linkageType: ''
    returnType: Attribute
    signature: Attribute Create(Args&&... a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kind
      Src: /src/raksha/src/ir/attributes/attribute.h:64,1
    - Dst: static_cast<const T*>
      Src: /src/raksha/src/ir/attributes/attribute.h:66,1
    - Dst: get
      Src: /src/raksha/src/ir/attributes/attribute.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: raksha::ir::Attribute::GetIf
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 0
    functionsReached:
    - kind
    - get
    - static_cast<const T*>
    linkageType: ''
    returnType: intrusive_ptr<const T>
    signature: intrusive_ptr<const T> GetIf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::Attribute::ToString
      Src: /src/raksha/src/ir/attributes/attribute.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: raksha::ir::Attribute::ToString
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 2
    functionsReached:
    - raksha::ir::Attribute::ToString
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/attributes/attribute.h:80,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/attributes/attribute.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - intrusive_ptr<const T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: raksha::ir::Attribute::Attribute
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 0
    functionsReached:
    - std::move
    - CHECK
    linkageType: ''
    returnType: void
    signature: void Attribute(intrusive_ptr<const T> value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/attributes/attribute.h:90,1
    - Dst: value_::IsEqual
      Src: /src/raksha/src/ir/attributes/attribute.h:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Attribute
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: operator==(const Attribute& lhs, const Attribute& rhs)
    functionSourceFile: /src/raksha/src/ir/attributes/attribute.h
    functionUses: 0
    functionsReached:
    - value_::IsEqual
    - CHECK
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Attribute& lhs, const Attribute& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: intrusive_ptr<const StringAttribute>
      Src: /src/raksha/src/ir/attributes/string_attribute.h:33,1
    - Dst: StringAttribute::StringAttribute
      Src: /src/raksha/src/ir/attributes/string_attribute.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: raksha::ir::StringAttribute::Create
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute.h
    functionUses: 4
    functionsReached:
    - intrusive_ptr<const StringAttribute>
    - StringAttribute::StringAttribute
    linkageType: ''
    returnType: intrusive_ptr<const StringAttribute>
    signature: intrusive_ptr<const StringAttribute> Create(absl::string_view value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: raksha::ir::StringAttribute::value
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view value() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::StringAttribute::kind
      Src: /src/raksha/src/ir/attributes/string_attribute.h:39,1
    - Dst: kind
      Src: /src/raksha/src/ir/attributes/string_attribute.h:39,1
    - Dst: static_cast<const StringAttribute&>
      Src: /src/raksha/src/ir/attributes/string_attribute.h:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AttributeBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: raksha::ir::StringAttribute::IsEqual
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute.h
    functionUses: 0
    functionsReached:
    - kind
    - raksha::ir::StringAttribute::kind
    - static_cast<const StringAttribute&>
    linkageType: ''
    returnType: bool
    signature: bool IsEqual(const AttributeBase& other) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/attributes/string_attribute.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: raksha::ir::StringAttribute::ToString
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute.h
    functionUses: 0
    functionsReached:
    - absl::StrCat
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: raksha::ir::StringAttribute::StringAttribute
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringAttribute(absl::string_view value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/raksha/src/ir/attributes/string_attribute.h:53,1
    - Dst: value
      Src: /src/raksha/src/ir/attributes/string_attribute.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - StringAttribute
    - StringAttribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: operator==(const StringAttribute& lhs, const StringAttribute& rhs)
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute.h
    functionUses: 0
    functionsReached:
    - value
    linkageType: ''
    returnType: bool
    signature: bool operator==(const StringAttribute& lhs, const StringAttribute&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: intrusive_ptr<const StringAttribute>
      Src: /src/raksha/src/ir/attributes/string_attribute.h:33,1
    - Dst: StringAttribute::StringAttribute
      Src: /src/raksha/src/ir/attributes/string_attribute.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: raksha::ir::StringAttribute::Create
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute.h
    functionUses: 4
    functionsReached:
    - intrusive_ptr<const StringAttribute>
    - StringAttribute::StringAttribute
    linkageType: ''
    returnType: intrusive_ptr<const StringAttribute>
    signature: intrusive_ptr<const StringAttribute> Create(absl::string_view value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: raksha::ir::StringAttribute::value
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view value() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::StringAttribute::kind
      Src: /src/raksha/src/ir/attributes/string_attribute.h:39,1
    - Dst: kind
      Src: /src/raksha/src/ir/attributes/string_attribute.h:39,1
    - Dst: static_cast<const StringAttribute&>
      Src: /src/raksha/src/ir/attributes/string_attribute.h:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - AttributeBase
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: raksha::ir::StringAttribute::IsEqual
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute.h
    functionUses: 0
    functionsReached:
    - kind
    - raksha::ir::StringAttribute::kind
    - static_cast<const StringAttribute&>
    linkageType: ''
    returnType: bool
    signature: bool IsEqual(const AttributeBase& other) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/attributes/string_attribute.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: raksha::ir::StringAttribute::ToString
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute.h
    functionUses: 0
    functionsReached:
    - absl::StrCat
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: raksha::ir::StringAttribute::StringAttribute
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringAttribute(absl::string_view value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/raksha/src/ir/attributes/string_attribute.h:53,1
    - Dst: value
      Src: /src/raksha/src/ir/attributes/string_attribute.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - StringAttribute
    - StringAttribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: operator==(const StringAttribute& lhs, const StringAttribute& rhs)
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute.h
    functionUses: 0
    functionsReached:
    - value
    linkageType: ''
    returnType: bool
    signature: bool operator==(const StringAttribute& lhs, const StringAttribute&
      rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(StringAttributeKindTest, ConstantkAttributeKindIsString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:32,1
    - Dst: raksha::ir::StringAttribute::Create
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:34,1
    - Dst: auto::kind
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:35,1
    - Dst: auto::ToString
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:35,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - auto::kind
    - auto::ToString
    - raksha::ir::StringAttribute::Create
    - absl::StrCat
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(StringAttributeTest, KindAndToStringWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:46,1
    - Dst: raksha::ir::StringAttribute::Create
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:47,1
    - Dst: raksha::ir::StringAttribute::Create
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    - raksha::ir::StringAttribute::Create
    linkageType: ''
    returnType: void
    signature: void TEST_P(StringAttributeComparatorTest, EqualityWorksAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(StringAttributeKindTest, ConstantkAttributeKindIsString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:32,1
    - Dst: raksha::ir::StringAttribute::Create
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:34,1
    - Dst: auto::kind
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:35,1
    - Dst: auto::ToString
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:35,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - auto::kind
    - auto::ToString
    - raksha::ir::StringAttribute::Create
    - absl::StrCat
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(StringAttributeTest, KindAndToStringWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:46,1
    - Dst: raksha::ir::StringAttribute::Create
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:47,1
    - Dst: raksha::ir::StringAttribute::Create
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    - raksha::ir::StringAttribute::Create
    linkageType: ''
    returnType: void
    signature: void TEST_P(StringAttributeComparatorTest, EqualityWorksAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(StringAttributeKindTest, ConstantkAttributeKindIsString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:32,1
    - Dst: raksha::ir::StringAttribute::Create
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:34,1
    - Dst: auto::kind
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:35,1
    - Dst: auto::ToString
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:35,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - auto::kind
    - auto::ToString
    - raksha::ir::StringAttribute::Create
    - absl::StrCat
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(StringAttributeTest, KindAndToStringWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:46,1
    - Dst: raksha::ir::StringAttribute::Create
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:47,1
    - Dst: raksha::ir::StringAttribute::Create
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    - raksha::ir::StringAttribute::Create
    linkageType: ''
    returnType: void
    signature: void TEST_P(StringAttributeComparatorTest, EqualityWorksAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: raksha::ir::TEST
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(StringAttributeKindTest, ConstantkAttributeKindIsString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:32,1
    - Dst: raksha::ir::StringAttribute::Create
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:34,1
    - Dst: auto::kind
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:35,1
    - Dst: auto::ToString
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:35,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - auto::kind
    - auto::ToString
    - raksha::ir::StringAttribute::Create
    - absl::StrCat
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(StringAttributeTest, KindAndToStringWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:46,1
    - Dst: raksha::ir::StringAttribute::Create
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:47,1
    - Dst: raksha::ir::StringAttribute::Create
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/attributes/string_attribute_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: raksha::ir::TEST_P
    functionSourceFile: /src/raksha/src/ir/attributes/string_attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    - raksha::ir::StringAttribute::Create
    linkageType: ''
    returnType: void
    signature: void TEST_P(StringAttributeComparatorTest, EqualityWorksAsExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TypeFactory::RegisterSchema
      Src: /src/raksha/src/ir/types/type_test.cc:41,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/type_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type_factory
    - field_map
    argTypes:
    - TypeFactory
    - absl::flat_hash_map<std::string, Type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: raksha::ir::types::MakeAnonymousSchema
    functionSourceFile: /src/raksha/src/ir/types/type_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    - TypeFactory::RegisterSchema
    linkageType: ''
    returnType: Schema
    signature: "Schema &MakeAnonymousSchema(\n    TypeFactory &type_factory,\n    absl::flat_hash_map<std::string,
      Type> field_map)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TypeFactory::MakeEntityType
      Src: /src/raksha/src/ir/types/type_test.cc:47,1
    - Dst: raksha::ir::types::MakeAnonymousSchema
      Src: /src/raksha/src/ir/types/type_test.cc:48,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/type_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type_factory
    - field_map
    argTypes:
    - TypeFactory
    - absl::flat_hash_map<std::string, Type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: raksha::ir::types::MakeEntityTypeWithAnonymousSchema
    functionSourceFile: /src/raksha/src/ir/types/type_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    - raksha::ir::types::MakeAnonymousSchema
    - TypeFactory::MakeEntityType
    linkageType: ''
    returnType: Type
    signature: "Type MakeEntityTypeWithAnonymousSchema(\n    TypeFactory &type_factory,\n
      \   absl::flat_hash_map<std::string, Type> field_map)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_NE
      Src: /src/raksha/src/ir/types/type_test.cc:62,1
    - Dst: TypeFactory::MakePrimitiveType
      Src: /src/raksha/src/ir/types/type_test.cc:65,1
    - Dst: Iter::size
      Src: /src/raksha/src/ir/types/type_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/types/type_test.cc:75,1
    - Dst: TypeFactory::MakePrimitiveType
      Src: /src/raksha/src/ir/types/type_test.cc:76,1
    - Dst: size
      Src: /src/raksha/src/ir/types/type_test.cc:83,1
    - Dst: size
      Src: /src/raksha/src/ir/types/type_test.cc:84,1
    - Dst: at
      Src: /src/raksha/src/ir/types/type_test.cc:95,1
    - Dst: at
      Src: /src/raksha/src/ir/types/type_test.cc:95,1
    - Dst: std::vector::at
      Src: /src/raksha/src/ir/types/type_test.cc:101,1
    - Dst: std::upper_bound
      Src: /src/raksha/src/ir/types/type_test.cc:105,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/ir/types/type_test.cc:108,1
    - Dst: raksha::ir::types::MakeMinimalTypeFromAccessPathFieldVec
      Src: /src/raksha/src/ir/types/type_test.cc:108,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/types/type_test.cc:113,1
    - Dst: raksha::ir::types::MakeEntityTypeWithAnonymousSchema
      Src: /src/raksha/src/ir/types/type_test.cc:117,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/type_test.cc:117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - type_factory
    - begin_iter
    - end_iter
    - depth
    argTypes:
    - TypeFactory
    - Iter
    - Iter
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 118
    functionName: raksha::ir::types::MakeMinimalTypeFromAccessPathFieldVec
    functionSourceFile: /src/raksha/src/ir/types/type_test.cc
    functionUses: 1
    functionsReached:
    - TypeFactory::MakePrimitiveType
    - EXPECT_EQ
    - raksha::ir::types::MakeMinimalTypeFromAccessPathFieldVec
    - raksha::ir::types::MakeEntityTypeWithAnonymousSchema
    - std::vector::at
    - absl::flat_hash_map::insert
    - EXPECT_TRUE
    - Iter::size
    - std::move
    - std::upper_bound
    - size
    - at
    - EXPECT_NE
    linkageType: ''
    returnType: Type
    signature: "Type MakeMinimalTypeFromAccessPathFieldVec(TypeFactory &type_factory,\n
      \                                                 Iter begin_iter,\n                                                  Iter
      end_iter,\n                                                  uint64_t depth)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/types/type_test.cc:126,1
    - Dst: absl::StrSplit
      Src: /src/raksha/src/ir/types/type_test.cc:127,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/type_test.cc:127,1
    - Dst: absl::SkipEmpty
      Src: /src/raksha/src/ir/types/type_test.cc:127,1
    - Dst: std::sort
      Src: /src/raksha/src/ir/types/type_test.cc:130,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/ir/types/type_test.cc:130,1
    - Dst: std::vector::end
      Src: /src/raksha/src/ir/types/type_test.cc:130,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/ir/types/type_test.cc:134,1
    - Dst: std::vector::end
      Src: /src/raksha/src/ir/types/type_test.cc:135,1
    - Dst: std::vector::size
      Src: /src/raksha/src/ir/types/type_test.cc:139,1
    - Dst: std::vector::size
      Src: /src/raksha/src/ir/types/type_test.cc:139,1
    - Dst: std::vector::size
      Src: /src/raksha/src/ir/types/type_test.cc:143,1
    - Dst: std::vector::at
      Src: /src/raksha/src/ir/types/type_test.cc:144,1
    - Dst: std::vector::at
      Src: /src/raksha/src/ir/types/type_test.cc:144,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/types/type_test.cc:149,1
    - Dst: raksha::ir::types::MakeMinimalTypeFromAccessPathFieldVec
      Src: /src/raksha/src/ir/types/type_test.cc:154,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/ir/types/type_test.cc:155,1
    - Dst: std::vector::end
      Src: /src/raksha/src/ir/types/type_test.cc:156,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - type_factory
    - access_path_strs
    argTypes:
    - TypeFactory
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 158
    functionName: raksha::ir::types::MakeMinimalTypeFromAccessPathStrings
    functionSourceFile: /src/raksha/src/ir/types/type_test.cc
    functionUses: 0
    functionsReached:
    - absl::SkipEmpty
    - raksha::ir::types::MakeMinimalTypeFromAccessPathFieldVec
    - std::vector::push_back
    - std::vector::begin
    - std::vector::at
    - std::move
    - std::vector::end
    - CHECK
    - absl::StrSplit
    - std::sort
    - std::vector::size
    linkageType: ''
    returnType: Type
    signature: "Type MakeMinimalTypeFromAccessPathStrings(\n    TypeFactory &type_factory,
      std::vector<std::string> access_path_strs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::AccessPathSelectorsSet::CreateAbslSet
      Src: /src/raksha/src/ir/types/type_test.cc:177,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/type_test.cc:178,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/types/type_test.cc:181,1
    - Dst: ToString
      Src: /src/raksha/src/ir/types/type_test.cc:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - access_path_set
    argTypes:
    - raksha::ir::AccessPathSelectorsSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 184
    functionName: raksha::ir::types::GetAccessPathStrVecFromAccessPathSelectorsSet
    functionSourceFile: /src/raksha/src/ir/types/type_test.cc
    functionUses: 0
    functionsReached:
    - ToString
    - raksha::ir::AccessPathSelectorsSet::CreateAbslSet
    - std::move
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> GetAccessPathStrVecFromAccessPathSelectorsSet(\n
      \   raksha::ir::AccessPathSelectorsSet access_path_set)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/types/type_test.cc:197,1
    - Dst: raksha::ir::types::MakeMinimalTypeFromAccessPathStrings
      Src: /src/raksha/src/ir/types/type_test.cc:199,1
    - Dst: raksha::ir::types::GetAccessPathStrVecFromAccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/type_test.cc:201,1
    - Dst: Type::GetAccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/type_test.cc:202,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/types/type_test.cc:204,1
    - Dst: testing::UnorderedElementsAreArray
      Src: /src/raksha/src/ir/types/type_test.cc:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 196
    functionDepth: 4
    functionLinenumber: 196
    functionLinenumberEnd: 205
    functionName: raksha::ir::types::TEST_P
    functionSourceFile: /src/raksha/src/ir/types/type_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::types::MakeMinimalTypeFromAccessPathStrings
    - Type::GetAccessPathSelectorsSet
    - EXPECT_THAT
    - testing::UnorderedElementsAreArray
    - raksha::ir::types::GetAccessPathStrVecFromAccessPathSelectorsSet
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(RoundTripStrsThroughTypeTest, RoundTripStrsThroughTypeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/types/type_test.cc:221,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/types/type_test.cc:222,1
    - Dst: std::get<1>
      Src: /src/raksha/src/ir/types/type_test.cc:223,1
    - Dst: raksha::ir::types::GetAccessPathStrVecFromAccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/type_test.cc:226,1
    - Dst: TypeBase*::GetAccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/type_test.cc:227,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/types/type_test.cc:229,1
    - Dst: testing::UnorderedElementsAreArray
      Src: /src/raksha/src/ir/types/type_test.cc:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 230
    functionName: raksha::ir::types::TEST_P
    functionSourceFile: /src/raksha/src/ir/types/type_test.cc
    functionUses: 0
    functionsReached:
    - TypeBase*::GetAccessPathSelectorsSet
    - EXPECT_THAT
    - testing::UnorderedElementsAreArray
    - std::get<0>
    - std::get<1>
    - raksha::ir::types::GetAccessPathStrVecFromAccessPathSelectorsSet
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(TypeProducesAccessPathStrsTest, TypeProducesAccessPathStrsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/types/type_test.cc:259,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/types/type_test.cc:261,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/ir/types/type_test.cc:261,1
    - Dst: raksha::ir::types::proto::Decode
      Src: /src/raksha/src/ir/types/type_test.cc:264,1
    - Dst: raksha::ir::types::GetAccessPathStrVecFromAccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/type_test.cc:266,1
    - Dst: Type::GetAccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/type_test.cc:267,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/types/type_test.cc:268,1
    - Dst: testing::UnorderedElementsAreArray
      Src: /src/raksha/src/ir/types/type_test.cc:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 270
    functionName: raksha::ir::types::TEST_P
    functionSourceFile: /src/raksha/src/ir/types/type_test.cc
    functionUses: 0
    functionsReached:
    - Type::GetAccessPathSelectorsSet
    - google::protobuf::TextFormat::ParseFromString
    - ASSERT_TRUE
    - EXPECT_THAT
    - testing::UnorderedElementsAreArray
    - raksha::ir::types::proto::Decode
    - raksha::ir::types::GetAccessPathStrVecFromAccessPathSelectorsSet
    - GetParam
    linkageType: ''
    returnType: void
    signature: "void TEST_P(GetAccessPathSelectorsWithProtoTest,\n       GetAccessPathSelectorsWithProtoTest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::types::MakeAnonymousSchema
      Src: /src/raksha/src/ir/types/type_test.cc:323,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/types/type_test.cc:324,1
    - Dst: EntityType::kind
      Src: /src/raksha/src/ir/types/type_test.cc:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 325
    functionName: raksha::ir::types::TEST
    functionSourceFile: /src/raksha/src/ir/types/type_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EntityType::kind
    - raksha::ir::types::MakeAnonymousSchema
    linkageType: ''
    returnType: void
    signature: void TEST(EntityTypeTest, KindReturnsCorrectKind)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TypeFactory::RegisterSchema
      Src: /src/raksha/src/ir/types/type_test.cc:41,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/type_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type_factory
    - field_map
    argTypes:
    - TypeFactory
    - absl::flat_hash_map<std::string, Type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: raksha::ir::types::MakeAnonymousSchema
    functionSourceFile: /src/raksha/src/ir/types/type_test.cc
    functionUses: 2
    functionsReached:
    - std::move
    - TypeFactory::RegisterSchema
    linkageType: ''
    returnType: Schema
    signature: "Schema &MakeAnonymousSchema(\n    TypeFactory &type_factory,\n    absl::flat_hash_map<std::string,
      Type> field_map)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TypeFactory::MakeEntityType
      Src: /src/raksha/src/ir/types/type_test.cc:47,1
    - Dst: raksha::ir::types::MakeAnonymousSchema
      Src: /src/raksha/src/ir/types/type_test.cc:48,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/type_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type_factory
    - field_map
    argTypes:
    - TypeFactory
    - absl::flat_hash_map<std::string, Type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: raksha::ir::types::MakeEntityTypeWithAnonymousSchema
    functionSourceFile: /src/raksha/src/ir/types/type_test.cc
    functionUses: 1
    functionsReached:
    - std::move
    - raksha::ir::types::MakeAnonymousSchema
    - TypeFactory::MakeEntityType
    linkageType: ''
    returnType: Type
    signature: "Type MakeEntityTypeWithAnonymousSchema(\n    TypeFactory &type_factory,\n
      \   absl::flat_hash_map<std::string, Type> field_map)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_NE
      Src: /src/raksha/src/ir/types/type_test.cc:62,1
    - Dst: TypeFactory::MakePrimitiveType
      Src: /src/raksha/src/ir/types/type_test.cc:65,1
    - Dst: Iter::size
      Src: /src/raksha/src/ir/types/type_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/types/type_test.cc:75,1
    - Dst: TypeFactory::MakePrimitiveType
      Src: /src/raksha/src/ir/types/type_test.cc:76,1
    - Dst: size
      Src: /src/raksha/src/ir/types/type_test.cc:83,1
    - Dst: size
      Src: /src/raksha/src/ir/types/type_test.cc:84,1
    - Dst: at
      Src: /src/raksha/src/ir/types/type_test.cc:95,1
    - Dst: at
      Src: /src/raksha/src/ir/types/type_test.cc:95,1
    - Dst: std::vector::at
      Src: /src/raksha/src/ir/types/type_test.cc:101,1
    - Dst: std::upper_bound
      Src: /src/raksha/src/ir/types/type_test.cc:105,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/ir/types/type_test.cc:108,1
    - Dst: raksha::ir::types::MakeMinimalTypeFromAccessPathFieldVec
      Src: /src/raksha/src/ir/types/type_test.cc:108,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/types/type_test.cc:113,1
    - Dst: raksha::ir::types::MakeEntityTypeWithAnonymousSchema
      Src: /src/raksha/src/ir/types/type_test.cc:117,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/type_test.cc:117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - type_factory
    - begin_iter
    - end_iter
    - depth
    argTypes:
    - TypeFactory
    - Iter
    - Iter
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 118
    functionName: raksha::ir::types::MakeMinimalTypeFromAccessPathFieldVec
    functionSourceFile: /src/raksha/src/ir/types/type_test.cc
    functionUses: 3
    functionsReached:
    - TypeFactory::MakePrimitiveType
    - EXPECT_EQ
    - raksha::ir::types::MakeMinimalTypeFromAccessPathFieldVec
    - raksha::ir::types::MakeEntityTypeWithAnonymousSchema
    - std::vector::at
    - absl::flat_hash_map::insert
    - EXPECT_TRUE
    - Iter::size
    - std::move
    - std::upper_bound
    - size
    - at
    - EXPECT_NE
    linkageType: ''
    returnType: Type
    signature: "Type MakeMinimalTypeFromAccessPathFieldVec(TypeFactory &type_factory,\n
      \                                                 Iter begin_iter,\n                                                  Iter
      end_iter,\n                                                  uint64_t depth)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/types/type_test.cc:126,1
    - Dst: absl::StrSplit
      Src: /src/raksha/src/ir/types/type_test.cc:127,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/type_test.cc:127,1
    - Dst: absl::SkipEmpty
      Src: /src/raksha/src/ir/types/type_test.cc:127,1
    - Dst: std::sort
      Src: /src/raksha/src/ir/types/type_test.cc:130,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/ir/types/type_test.cc:130,1
    - Dst: std::vector::end
      Src: /src/raksha/src/ir/types/type_test.cc:130,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/ir/types/type_test.cc:134,1
    - Dst: std::vector::end
      Src: /src/raksha/src/ir/types/type_test.cc:135,1
    - Dst: std::vector::size
      Src: /src/raksha/src/ir/types/type_test.cc:139,1
    - Dst: std::vector::size
      Src: /src/raksha/src/ir/types/type_test.cc:139,1
    - Dst: std::vector::size
      Src: /src/raksha/src/ir/types/type_test.cc:143,1
    - Dst: std::vector::at
      Src: /src/raksha/src/ir/types/type_test.cc:144,1
    - Dst: std::vector::at
      Src: /src/raksha/src/ir/types/type_test.cc:144,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/types/type_test.cc:149,1
    - Dst: raksha::ir::types::MakeMinimalTypeFromAccessPathFieldVec
      Src: /src/raksha/src/ir/types/type_test.cc:154,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/ir/types/type_test.cc:155,1
    - Dst: std::vector::end
      Src: /src/raksha/src/ir/types/type_test.cc:156,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - type_factory
    - access_path_strs
    argTypes:
    - TypeFactory
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 158
    functionName: raksha::ir::types::MakeMinimalTypeFromAccessPathStrings
    functionSourceFile: /src/raksha/src/ir/types/type_test.cc
    functionUses: 1
    functionsReached:
    - absl::SkipEmpty
    - raksha::ir::types::MakeMinimalTypeFromAccessPathFieldVec
    - std::vector::push_back
    - std::vector::begin
    - std::vector::at
    - std::move
    - std::vector::end
    - CHECK
    - absl::StrSplit
    - std::sort
    - std::vector::size
    linkageType: ''
    returnType: Type
    signature: "Type MakeMinimalTypeFromAccessPathStrings(\n    TypeFactory &type_factory,
      std::vector<std::string> access_path_strs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::AccessPathSelectorsSet::CreateAbslSet
      Src: /src/raksha/src/ir/types/type_test.cc:177,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/type_test.cc:178,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/types/type_test.cc:181,1
    - Dst: ToString
      Src: /src/raksha/src/ir/types/type_test.cc:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - access_path_set
    argTypes:
    - raksha::ir::AccessPathSelectorsSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 184
    functionName: raksha::ir::types::GetAccessPathStrVecFromAccessPathSelectorsSet
    functionSourceFile: /src/raksha/src/ir/types/type_test.cc
    functionUses: 3
    functionsReached:
    - ToString
    - raksha::ir::AccessPathSelectorsSet::CreateAbslSet
    - std::move
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> GetAccessPathStrVecFromAccessPathSelectorsSet(\n
      \   raksha::ir::AccessPathSelectorsSet access_path_set)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/types/type_test.cc:197,1
    - Dst: raksha::ir::types::MakeMinimalTypeFromAccessPathStrings
      Src: /src/raksha/src/ir/types/type_test.cc:199,1
    - Dst: raksha::ir::types::GetAccessPathStrVecFromAccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/type_test.cc:201,1
    - Dst: Type::GetAccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/type_test.cc:202,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/types/type_test.cc:204,1
    - Dst: testing::UnorderedElementsAreArray
      Src: /src/raksha/src/ir/types/type_test.cc:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 196
    functionDepth: 4
    functionLinenumber: 196
    functionLinenumberEnd: 205
    functionName: raksha::ir::types::TEST_P
    functionSourceFile: /src/raksha/src/ir/types/type_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::types::MakeMinimalTypeFromAccessPathStrings
    - Type::GetAccessPathSelectorsSet
    - EXPECT_THAT
    - testing::UnorderedElementsAreArray
    - raksha::ir::types::GetAccessPathStrVecFromAccessPathSelectorsSet
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(RoundTripStrsThroughTypeTest, RoundTripStrsThroughTypeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/types/type_test.cc:221,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/types/type_test.cc:222,1
    - Dst: std::get<1>
      Src: /src/raksha/src/ir/types/type_test.cc:223,1
    - Dst: raksha::ir::types::GetAccessPathStrVecFromAccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/type_test.cc:226,1
    - Dst: TypeBase*::GetAccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/type_test.cc:227,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/types/type_test.cc:229,1
    - Dst: testing::UnorderedElementsAreArray
      Src: /src/raksha/src/ir/types/type_test.cc:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 230
    functionName: raksha::ir::types::TEST_P
    functionSourceFile: /src/raksha/src/ir/types/type_test.cc
    functionUses: 0
    functionsReached:
    - TypeBase*::GetAccessPathSelectorsSet
    - EXPECT_THAT
    - testing::UnorderedElementsAreArray
    - std::get<0>
    - std::get<1>
    - raksha::ir::types::GetAccessPathStrVecFromAccessPathSelectorsSet
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(TypeProducesAccessPathStrsTest, TypeProducesAccessPathStrsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/types/type_test.cc:259,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/types/type_test.cc:261,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/ir/types/type_test.cc:261,1
    - Dst: raksha::ir::types::proto::Decode
      Src: /src/raksha/src/ir/types/type_test.cc:264,1
    - Dst: raksha::ir::types::GetAccessPathStrVecFromAccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/type_test.cc:266,1
    - Dst: Type::GetAccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/type_test.cc:267,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/types/type_test.cc:268,1
    - Dst: testing::UnorderedElementsAreArray
      Src: /src/raksha/src/ir/types/type_test.cc:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 270
    functionName: raksha::ir::types::TEST_P
    functionSourceFile: /src/raksha/src/ir/types/type_test.cc
    functionUses: 0
    functionsReached:
    - Type::GetAccessPathSelectorsSet
    - google::protobuf::TextFormat::ParseFromString
    - ASSERT_TRUE
    - EXPECT_THAT
    - testing::UnorderedElementsAreArray
    - raksha::ir::types::proto::Decode
    - raksha::ir::types::GetAccessPathStrVecFromAccessPathSelectorsSet
    - GetParam
    linkageType: ''
    returnType: void
    signature: "void TEST_P(GetAccessPathSelectorsWithProtoTest,\n       GetAccessPathSelectorsWithProtoTest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::types::MakeAnonymousSchema
      Src: /src/raksha/src/ir/types/type_test.cc:323,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/types/type_test.cc:324,1
    - Dst: EntityType::kind
      Src: /src/raksha/src/ir/types/type_test.cc:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 325
    functionName: raksha::ir::types::TEST
    functionSourceFile: /src/raksha/src/ir/types/type_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EntityType::kind
    - raksha::ir::types::MakeAnonymousSchema
    linkageType: ''
    returnType: void
    signature: void TEST(EntityTypeTest, KindReturnsCorrectKind)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/types/primitive_type_test.cc:28,1
    - Dst: PrimitiveType::kind
      Src: /src/raksha/src/ir/types/primitive_type_test.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: raksha::ir::types::TEST
    functionSourceFile: /src/raksha/src/ir/types/primitive_type_test.cc
    functionUses: 0
    functionsReached:
    - PrimitiveType::kind
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(PrimitiveTypeTest, KindReturnsCorrectKind)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::AccessPathSelectorsSet::CreateAbslSet
      Src: /src/raksha/src/ir/types/primitive_type_test.cc:35,1
    - Dst: PrimitiveType::GetAccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/primitive_type_test.cc:36,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/types/primitive_type_test.cc:37,1
    - Dst: absl::flat_hash_set::size
      Src: /src/raksha/src/ir/types/primitive_type_test.cc:37,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/types/primitive_type_test.cc:38,1
    - Dst: absl::flat_hash_set::begin
      Src: /src/raksha/src/ir/types/primitive_type_test.cc:38,1
    - Dst: raksha::ir::AccessPathSelectors::AccessPathSelectors
      Src: /src/raksha/src/ir/types/primitive_type_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: raksha::ir::types::TEST
    functionSourceFile: /src/raksha/src/ir/types/primitive_type_test.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_set::begin
    - raksha::ir::AccessPathSelectors::AccessPathSelectors
    - absl::flat_hash_set::size
    - ASSERT_EQ
    - raksha::ir::AccessPathSelectorsSet::CreateAbslSet
    - PrimitiveType::GetAccessPathSelectorsSet
    linkageType: ''
    returnType: void
    signature: void TEST(TestGetAccessPaths, TestGetAccessPaths)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/types/primitive_type_test.cc:28,1
    - Dst: PrimitiveType::kind
      Src: /src/raksha/src/ir/types/primitive_type_test.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: raksha::ir::types::TEST
    functionSourceFile: /src/raksha/src/ir/types/primitive_type_test.cc
    functionUses: 0
    functionsReached:
    - PrimitiveType::kind
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(PrimitiveTypeTest, KindReturnsCorrectKind)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::AccessPathSelectorsSet::CreateAbslSet
      Src: /src/raksha/src/ir/types/primitive_type_test.cc:35,1
    - Dst: PrimitiveType::GetAccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/primitive_type_test.cc:36,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/types/primitive_type_test.cc:37,1
    - Dst: absl::flat_hash_set::size
      Src: /src/raksha/src/ir/types/primitive_type_test.cc:37,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/types/primitive_type_test.cc:38,1
    - Dst: absl::flat_hash_set::begin
      Src: /src/raksha/src/ir/types/primitive_type_test.cc:38,1
    - Dst: raksha::ir::AccessPathSelectors::AccessPathSelectors
      Src: /src/raksha/src/ir/types/primitive_type_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: raksha::ir::types::TEST
    functionSourceFile: /src/raksha/src/ir/types/primitive_type_test.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_set::begin
    - raksha::ir::AccessPathSelectors::AccessPathSelectors
    - absl::flat_hash_set::size
    - ASSERT_EQ
    - raksha::ir::AccessPathSelectorsSet::CreateAbslSet
    - PrimitiveType::GetAccessPathSelectorsSet
    linkageType: ''
    returnType: void
    signature: void TEST(TestGetAccessPaths, TestGetAccessPaths)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/raksha/src/ir/types/schema.cc:36,1
    - Dst: raksha::ir::AccessPathSelectorsSet::AccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/schema.cc:37,1
    - Dst: raksha::ir::AccessPathSelectors::AccessPathSelectors
      Src: /src/raksha/src/ir/types/schema.cc:37,1
    - Dst: raksha::ir::Selector::Selector
      Src: /src/raksha/src/ir/types/schema.cc:41,1
    - Dst: raksha::ir::FieldSelector::FieldSelector
      Src: /src/raksha/src/ir/types/schema.cc:41,1
    - Dst: second::GetAccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/schema.cc:44,1
    - Dst: raksha::ir::AccessPathSelectorsSet::Union
      Src: /src/raksha/src/ir/types/schema.cc:46,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/schema.cc:47,1
    - Dst: raksha::ir::AccessPathSelectorsSet::AddParentToAll
      Src: /src/raksha/src/ir/types/schema.cc:48,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/schema.cc:49,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/schema.cc:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 53
    functionName: raksha::ir::types::Schema::GetAccessPathSelectorsSet
    functionSourceFile: /src/raksha/src/ir/types/schema.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::AccessPathSelectorsSet::Union
    - second::GetAccessPathSelectorsSet
    - raksha::ir::FieldSelector::FieldSelector
    - raksha::ir::Selector::Selector
    - raksha::ir::AccessPathSelectorsSet::AccessPathSelectorsSet
    - std::move
    - raksha::ir::AccessPathSelectorsSet::AddParentToAll
    - raksha::ir::AccessPathSelectors::AccessPathSelectors
    - empty
    linkageType: ''
    returnType: ir::AccessPathSelectorsSet
    signature: ir::AccessPathSelectorsSet Schema::GetAccessPathSelectorsSet() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/raksha/src/ir/types/schema.cc:36,1
    - Dst: raksha::ir::AccessPathSelectorsSet::AccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/schema.cc:37,1
    - Dst: raksha::ir::AccessPathSelectors::AccessPathSelectors
      Src: /src/raksha/src/ir/types/schema.cc:37,1
    - Dst: raksha::ir::Selector::Selector
      Src: /src/raksha/src/ir/types/schema.cc:41,1
    - Dst: raksha::ir::FieldSelector::FieldSelector
      Src: /src/raksha/src/ir/types/schema.cc:41,1
    - Dst: second::GetAccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/schema.cc:44,1
    - Dst: raksha::ir::AccessPathSelectorsSet::Union
      Src: /src/raksha/src/ir/types/schema.cc:46,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/schema.cc:47,1
    - Dst: raksha::ir::AccessPathSelectorsSet::AddParentToAll
      Src: /src/raksha/src/ir/types/schema.cc:48,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/schema.cc:49,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/schema.cc:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 53
    functionName: raksha::ir::types::Schema::GetAccessPathSelectorsSet
    functionSourceFile: /src/raksha/src/ir/types/schema.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::AccessPathSelectorsSet::Union
    - second::GetAccessPathSelectorsSet
    - raksha::ir::FieldSelector::FieldSelector
    - raksha::ir::Selector::Selector
    - raksha::ir::AccessPathSelectorsSet::AccessPathSelectorsSet
    - std::move
    - raksha::ir::AccessPathSelectorsSet::AddParentToAll
    - raksha::ir::AccessPathSelectors::AccessPathSelectors
    - empty
    linkageType: ''
    returnType: ir::AccessPathSelectorsSet
    signature: ir::AccessPathSelectorsSet Schema::GetAccessPathSelectorsSet() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: raksha::ir::types::TypeBase::TypeBase
    functionSourceFile: /src/raksha/src/ir/types/type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TypeBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: raksha::ir::types::TypeBase::TypeBase
    functionSourceFile: /src/raksha/src/ir/types/type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TypeBase(const TypeBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& operator=(const TypeBase&)'
    functionSourceFile: /src/raksha/src/ir/types/type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeBase
    signature: TypeBase & operator=(const TypeBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::ir::types::TypeBase::TypeBase
    functionSourceFile: /src/raksha/src/ir/types/type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TypeBase(TypeBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: '& operator=(TypeBase&&)'
    functionSourceFile: /src/raksha/src/ir/types/type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeBase
    signature: TypeBase & operator=(TypeBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: ~TypeBase()
    functionSourceFile: /src/raksha/src/ir/types/type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TypeBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::types::Type::GetAccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/type.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: raksha::ir::types::Type::GetAccessPathSelectorsSet
    functionSourceFile: /src/raksha/src/ir/types/type.h
    functionUses: 1
    functionsReached:
    - raksha::ir::types::Type::GetAccessPathSelectorsSet
    linkageType: ''
    returnType: raksha::ir::AccessPathSelectorsSet
    signature: raksha::ir::AccessPathSelectorsSet GetAccessPathSelectorsSet() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/raksha/src/ir/types/type.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: '& type_base() const'
    functionSourceFile: /src/raksha/src/ir/types/type.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: TypeBase
    signature: TypeBase & type_base() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<TypeBase>::release
      Src: /src/raksha/src/ir/types/type.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - std::unique_ptr<TypeBase>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: raksha::ir::types::Type::Type
    functionSourceFile: /src/raksha/src/ir/types/type.h
    functionUses: 0
    functionsReached:
    - std::unique_ptr<TypeBase>::release
    linkageType: ''
    returnType: void
    signature: void Type(std::unique_ptr<TypeBase> type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: raksha::ir::types::TypeBase::TypeBase
    functionSourceFile: /src/raksha/src/ir/types/type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TypeBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: raksha::ir::types::TypeBase::TypeBase
    functionSourceFile: /src/raksha/src/ir/types/type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TypeBase(const TypeBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& operator=(const TypeBase&)'
    functionSourceFile: /src/raksha/src/ir/types/type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeBase
    signature: TypeBase & operator=(const TypeBase&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::ir::types::TypeBase::TypeBase
    functionSourceFile: /src/raksha/src/ir/types/type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TypeBase(TypeBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: '& operator=(TypeBase&&)'
    functionSourceFile: /src/raksha/src/ir/types/type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeBase
    signature: TypeBase & operator=(TypeBase&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: ~TypeBase()
    functionSourceFile: /src/raksha/src/ir/types/type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TypeBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::types::Type::GetAccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/type.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: raksha::ir::types::Type::GetAccessPathSelectorsSet
    functionSourceFile: /src/raksha/src/ir/types/type.h
    functionUses: 2
    functionsReached:
    - raksha::ir::types::Type::GetAccessPathSelectorsSet
    linkageType: ''
    returnType: raksha::ir::AccessPathSelectorsSet
    signature: raksha::ir::AccessPathSelectorsSet GetAccessPathSelectorsSet() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/raksha/src/ir/types/type.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: '& type_base() const'
    functionSourceFile: /src/raksha/src/ir/types/type.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: TypeBase
    signature: TypeBase & type_base() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<TypeBase>::release
      Src: /src/raksha/src/ir/types/type.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - std::unique_ptr<TypeBase>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: raksha::ir::types::Type::Type
    functionSourceFile: /src/raksha/src/ir/types/type.h
    functionUses: 0
    functionsReached:
    - std::unique_ptr<TypeBase>::release
    linkageType: ''
    returnType: void
    signature: void Type(std::unique_ptr<TypeBase> type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type
      Src: /src/raksha/src/ir/types/type_factory.cc:27,1
    - Dst: std::make_unique<PrimitiveType>
      Src: /src/raksha/src/ir/types/type_factory.cc:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: raksha::ir::types::TypeFactory::MakePrimitiveType
    functionSourceFile: /src/raksha/src/ir/types/type_factory.cc
    functionUses: 0
    functionsReached:
    - Type
    - std::make_unique<PrimitiveType>
    linkageType: ''
    returnType: Type
    signature: Type TypeFactory::MakePrimitiveType()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type
      Src: /src/raksha/src/ir/types/type_factory.cc:31,1
    - Dst: std::make_unique<EntityType>
      Src: /src/raksha/src/ir/types/type_factory.cc:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' schema'
    argTypes:
    - Schema
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: raksha::ir::types::TypeFactory::MakeEntityType
    functionSourceFile: /src/raksha/src/ir/types/type_factory.cc
    functionUses: 0
    functionsReached:
    - Type
    - std::make_unique<EntityType>
    linkageType: ''
    returnType: Type
    signature: Type TypeFactory::MakeEntityType(const Schema& schema)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/types/type_factory.cc:38,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/type_factory.cc:38,1
    - Dst: Schema::Schema
      Src: /src/raksha/src/ir/types/type_factory.cc:38,1
    - Dst: std::unique_ptr::get
      Src: /src/raksha/src/ir/types/type_factory.cc:39,1
    - Dst: push_back
      Src: /src/raksha/src/ir/types/type_factory.cc:40,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/type_factory.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - fields
    argTypes:
    - std::optional<std::string>
    - absl::flat_hash_map<std::string, Type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: "& TypeFactory::RegisterSchema(\n    std::optional<std::string>
      name,\n    absl::flat_hash_map<std::string, Type> fields)"
    functionSourceFile: /src/raksha/src/ir/types/type_factory.cc
    functionUses: 0
    functionsReached:
    - std::move
    - Schema::Schema
    - push_back
    - std::unique_ptr::get
    linkageType: ''
    returnType: Schema
    signature: "Schema & TypeFactory::RegisterSchema(\n    std::optional<std::string>
      name,\n    absl::flat_hash_map<std::string, Type> fields)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type
      Src: /src/raksha/src/ir/types/type_factory.cc:27,1
    - Dst: std::make_unique<PrimitiveType>
      Src: /src/raksha/src/ir/types/type_factory.cc:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: raksha::ir::types::TypeFactory::MakePrimitiveType
    functionSourceFile: /src/raksha/src/ir/types/type_factory.cc
    functionUses: 0
    functionsReached:
    - Type
    - std::make_unique<PrimitiveType>
    linkageType: ''
    returnType: Type
    signature: Type TypeFactory::MakePrimitiveType()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Type
      Src: /src/raksha/src/ir/types/type_factory.cc:31,1
    - Dst: std::make_unique<EntityType>
      Src: /src/raksha/src/ir/types/type_factory.cc:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' schema'
    argTypes:
    - Schema
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: raksha::ir::types::TypeFactory::MakeEntityType
    functionSourceFile: /src/raksha/src/ir/types/type_factory.cc
    functionUses: 0
    functionsReached:
    - Type
    - std::make_unique<EntityType>
    linkageType: ''
    returnType: Type
    signature: Type TypeFactory::MakeEntityType(const Schema& schema)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/types/type_factory.cc:38,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/type_factory.cc:38,1
    - Dst: Schema::Schema
      Src: /src/raksha/src/ir/types/type_factory.cc:38,1
    - Dst: std::unique_ptr::get
      Src: /src/raksha/src/ir/types/type_factory.cc:39,1
    - Dst: push_back
      Src: /src/raksha/src/ir/types/type_factory.cc:40,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/type_factory.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - fields
    argTypes:
    - std::optional<std::string>
    - absl::flat_hash_map<std::string, Type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: "& TypeFactory::RegisterSchema(\n    std::optional<std::string>
      name,\n    absl::flat_hash_map<std::string, Type> fields)"
    functionSourceFile: /src/raksha/src/ir/types/type_factory.cc
    functionUses: 0
    functionsReached:
    - std::move
    - Schema::Schema
    - push_back
    - std::unique_ptr::get
    linkageType: ''
    returnType: Schema
    signature: "Schema & TypeFactory::RegisterSchema(\n    std::optional<std::string>
      name,\n    absl::flat_hash_map<std::string, Type> fields)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: '& name() const'
    functionSourceFile: /src/raksha/src/ir/types/schema.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: '& fields() const'
    functionSourceFile: /src/raksha/src/ir/types/schema.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::flat_hash_map<std::string, Type>
    signature: absl::flat_hash_map<std::string, Type> & fields() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_or
      Src: /src/raksha/src/ir/types/schema.h:49,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/types/schema.h:50,1
    - Dst: type_base
      Src: /src/raksha/src/ir/types/schema.h:55,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/types/schema.h:59,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/types/schema.h:60,1
    - Dst: sort
      Src: /src/raksha/src/ir/types/schema.h:67,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/ir/types/schema.h:67,1
    - Dst: std::vector::end
      Src: /src/raksha/src/ir/types/schema.h:67,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/types/schema.h:68,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/types/schema.h:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 71
    functionName: raksha::ir::types::Schema::ToString
    functionSourceFile: /src/raksha/src/ir/types/schema.h
    functionUses: 0
    functionsReached:
    - value_or
    - std::vector::push_back
    - absl::StrAppend
    - std::vector::begin
    - sort
    - absl::StrJoin
    - type_base
    - std::vector::end
    - absl::StrCat
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/types/schema.h:76,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/schema.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - name
    - fields
    argTypes:
    - std::optional<std::string>
    - absl::flat_hash_map<std::string, Type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: raksha::ir::types::Schema::Schema
    functionSourceFile: /src/raksha/src/ir/types/schema.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Schema(std::optional<std::string> name,\n                  absl::flat_hash_map<std::string,
      Type> fields)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: '& name() const'
    functionSourceFile: /src/raksha/src/ir/types/schema.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::string>
    signature: std::optional<std::string> & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: '& fields() const'
    functionSourceFile: /src/raksha/src/ir/types/schema.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::flat_hash_map<std::string, Type>
    signature: absl::flat_hash_map<std::string, Type> & fields() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_or
      Src: /src/raksha/src/ir/types/schema.h:49,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/types/schema.h:50,1
    - Dst: type_base
      Src: /src/raksha/src/ir/types/schema.h:55,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/types/schema.h:59,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/types/schema.h:60,1
    - Dst: sort
      Src: /src/raksha/src/ir/types/schema.h:67,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/ir/types/schema.h:67,1
    - Dst: std::vector::end
      Src: /src/raksha/src/ir/types/schema.h:67,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/types/schema.h:68,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/types/schema.h:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 71
    functionName: raksha::ir::types::Schema::ToString
    functionSourceFile: /src/raksha/src/ir/types/schema.h
    functionUses: 0
    functionsReached:
    - value_or
    - std::vector::push_back
    - absl::StrAppend
    - std::vector::begin
    - sort
    - absl::StrJoin
    - type_base
    - std::vector::end
    - absl::StrCat
    linkageType: ''
    returnType: std::string
    signature: std::string ToString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/types/schema.h:76,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/schema.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - name
    - fields
    argTypes:
    - std::optional<std::string>
    - absl::flat_hash_map<std::string, Type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: raksha::ir::types::Schema::Schema
    functionSourceFile: /src/raksha/src/ir/types/schema.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Schema(std::optional<std::string> name,\n                  absl::flat_hash_map<std::string,
      Type> fields)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' schema'
    argTypes:
    - Schema
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: raksha::ir::types::EntityType::EntityType
    functionSourceFile: /src/raksha/src/ir/types/entity_type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EntityType(const Schema& schema)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::ir::types::EntityType::kind
    functionSourceFile: /src/raksha/src/ir/types/entity_type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeBase::Kind
    signature: TypeBase::Kind kind() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::types::EntityType::GetAccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/entity_type.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: raksha::ir::types::EntityType::GetAccessPathSelectorsSet
    functionSourceFile: /src/raksha/src/ir/types/entity_type.h
    functionUses: 1
    functionsReached:
    - raksha::ir::types::EntityType::GetAccessPathSelectorsSet
    linkageType: ''
    returnType: raksha::ir::AccessPathSelectorsSet
    signature: raksha::ir::AccessPathSelectorsSet GetAccessPathSelectorsSet() const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: '& schema() const'
    functionSourceFile: /src/raksha/src/ir/types/entity_type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Schema
    signature: Schema & schema() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' schema'
    argTypes:
    - Schema
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: raksha::ir::types::EntityType::EntityType
    functionSourceFile: /src/raksha/src/ir/types/entity_type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EntityType(const Schema& schema)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::ir::types::EntityType::kind
    functionSourceFile: /src/raksha/src/ir/types/entity_type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeBase::Kind
    signature: TypeBase::Kind kind() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::types::EntityType::GetAccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/entity_type.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: raksha::ir::types::EntityType::GetAccessPathSelectorsSet
    functionSourceFile: /src/raksha/src/ir/types/entity_type.h
    functionUses: 2
    functionsReached:
    - raksha::ir::types::EntityType::GetAccessPathSelectorsSet
    linkageType: ''
    returnType: raksha::ir::AccessPathSelectorsSet
    signature: raksha::ir::AccessPathSelectorsSet GetAccessPathSelectorsSet() const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: '& schema() const'
    functionSourceFile: /src/raksha/src/ir/types/entity_type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Schema
    signature: Schema & schema() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: raksha::ir::types::PrimitiveType::PrimitiveType
    functionSourceFile: /src/raksha/src/ir/types/primitive_type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrimitiveType()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::ir::types::PrimitiveType::kind
    functionSourceFile: /src/raksha/src/ir/types/primitive_type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeBase::Kind
    signature: TypeBase::Kind kind() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::AccessPathSelectorsSet::AccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/primitive_type.h:41,1
    - Dst: raksha::ir::AccessPathSelectors::AccessPathSelectors
      Src: /src/raksha/src/ir/types/primitive_type.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: raksha::ir::types::PrimitiveType::GetAccessPathSelectorsSet
    functionSourceFile: /src/raksha/src/ir/types/primitive_type.h
    functionUses: 0
    functionsReached:
    - raksha::ir::AccessPathSelectors::AccessPathSelectors
    - raksha::ir::AccessPathSelectorsSet::AccessPathSelectorsSet
    linkageType: ''
    returnType: raksha::ir::AccessPathSelectorsSet
    signature: raksha::ir::AccessPathSelectorsSet GetAccessPathSelectorsSet() const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: raksha::ir::types::PrimitiveType::PrimitiveType
    functionSourceFile: /src/raksha/src/ir/types/primitive_type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrimitiveType()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: raksha::ir::types::PrimitiveType::kind
    functionSourceFile: /src/raksha/src/ir/types/primitive_type.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TypeBase::Kind
    signature: TypeBase::Kind kind() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::AccessPathSelectorsSet::AccessPathSelectorsSet
      Src: /src/raksha/src/ir/types/primitive_type.h:41,1
    - Dst: raksha::ir::AccessPathSelectors::AccessPathSelectors
      Src: /src/raksha/src/ir/types/primitive_type.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: raksha::ir::types::PrimitiveType::GetAccessPathSelectorsSet
    functionSourceFile: /src/raksha/src/ir/types/primitive_type.h
    functionUses: 0
    functionsReached:
    - raksha::ir::AccessPathSelectors::AccessPathSelectors
    - raksha::ir::AccessPathSelectorsSet::AccessPathSelectorsSet
    linkageType: ''
    returnType: raksha::ir::AccessPathSelectorsSet
    signature: raksha::ir::AccessPathSelectorsSet GetAccessPathSelectorsSet() const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/types/schema_test.cc:38,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/types/schema_test.cc:40,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/ir/types/schema_test.cc:40,1
    - Dst: raksha::ir::types::proto::decode
      Src: /src/raksha/src/ir/types/schema_test.cc:45,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/types/schema_test.cc:47,1
    - Dst: Schema::ToString
      Src: /src/raksha/src/ir/types/schema_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 48
    functionName: raksha::ir::types::TEST_P
    functionSourceFile: /src/raksha/src/ir/types/schema_test.cc
    functionUses: 0
    functionsReached:
    - google::protobuf::TextFormat::ParseFromString
    - ASSERT_TRUE
    - Schema::ToString
    - EXPECT_THAT
    - raksha::ir::types::proto::decode
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(ToStringTest, ToStringTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/types/schema_test.cc:38,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/types/schema_test.cc:40,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/ir/types/schema_test.cc:40,1
    - Dst: raksha::ir::types::proto::decode
      Src: /src/raksha/src/ir/types/schema_test.cc:45,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/types/schema_test.cc:47,1
    - Dst: Schema::ToString
      Src: /src/raksha/src/ir/types/schema_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 48
    functionName: raksha::ir::types::TEST_P
    functionSourceFile: /src/raksha/src/ir/types/schema_test.cc
    functionUses: 0
    functionsReached:
    - google::protobuf::TextFormat::ParseFromString
    - ASSERT_TRUE
    - Schema::ToString
    - EXPECT_THAT
    - raksha::ir::types::proto::decode
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(ToStringTest, ToStringTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:34,1
    - Dst: type::proto::PrimitiveTypeProto_Parse
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:36,1
    - Dst: raksha::ir::types::proto::decode
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:37,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:38,1
    - Dst: Type::type_base
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:38,1
    - Dst: static_cast<const PrimitiveType &>
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:40,1
    - Dst: Type::type_base
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:41,1
    - Dst: raksha::ir::types::proto::encode
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: raksha::ir::types::proto::TEST_P
    functionSourceFile: /src/raksha/src/ir/types/proto/primitive_type_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::types::proto::encode
    - Type::type_base
    - raksha::ir::types::proto::decode
    - ASSERT_EQ
    - type::proto::PrimitiveTypeProto_Parse
    - static_cast<const PrimitiveType &>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(PrimitiveTypeTest, RoundTripPreservesAllInformation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:45,1
    - Dst: type::proto::PrimitiveTypeProto_Parse
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:47,1
    - Dst: raksha::ir::types::proto::Encode
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:48,1
    - Dst: raksha::ir::types::proto::decode
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:48,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:49,1
    - Dst: TypeProto::data_case
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:50,1
    - Dst: TypeProto::primitive
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: raksha::ir::types::proto::TEST_P
    functionSourceFile: /src/raksha/src/ir/types/proto/primitive_type_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::types::proto::Encode
    - TypeProto::primitive
    - raksha::ir::types::proto::decode
    - TypeProto::data_case
    - ASSERT_EQ
    - type::proto::PrimitiveTypeProto_Parse
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(PrimitiveTypeTest, RoundTripToTypeProtoAndBackWorks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:34,1
    - Dst: type::proto::PrimitiveTypeProto_Parse
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:36,1
    - Dst: raksha::ir::types::proto::decode
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:37,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:38,1
    - Dst: Type::type_base
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:38,1
    - Dst: static_cast<const PrimitiveType &>
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:40,1
    - Dst: Type::type_base
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:41,1
    - Dst: raksha::ir::types::proto::encode
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: raksha::ir::types::proto::TEST_P
    functionSourceFile: /src/raksha/src/ir/types/proto/primitive_type_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::types::proto::encode
    - Type::type_base
    - raksha::ir::types::proto::decode
    - ASSERT_EQ
    - type::proto::PrimitiveTypeProto_Parse
    - static_cast<const PrimitiveType &>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(PrimitiveTypeTest, RoundTripPreservesAllInformation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:45,1
    - Dst: type::proto::PrimitiveTypeProto_Parse
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:47,1
    - Dst: raksha::ir::types::proto::Encode
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:48,1
    - Dst: raksha::ir::types::proto::decode
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:48,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:49,1
    - Dst: TypeProto::data_case
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:50,1
    - Dst: TypeProto::primitive
      Src: /src/raksha/src/ir/types/proto/primitive_type_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: raksha::ir::types::proto::TEST_P
    functionSourceFile: /src/raksha/src/ir/types/proto/primitive_type_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::types::proto::Encode
    - TypeProto::primitive
    - raksha::ir::types::proto::decode
    - TypeProto::data_case
    - ASSERT_EQ
    - type::proto::PrimitiveTypeProto_Parse
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(PrimitiveTypeTest, RoundTripToTypeProtoAndBackWorks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SchemaProto::names
      Src: /src/raksha/src/ir/types/proto/schema.cc:30,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/types/proto/schema.cc:31,1
    - Dst: auto::size
      Src: /src/raksha/src/ir/types/proto/schema.cc:31,1
    - Dst: auto::size
      Src: /src/raksha/src/ir/types/proto/schema.cc:34,1
    - Dst: auto::at
      Src: /src/raksha/src/ir/types/proto/schema.cc:35,1
    - Dst: SchemaProto::fields
      Src: /src/raksha/src/ir/types/proto/schema.cc:39,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/ir/types/proto/schema.cc:43,1
    - Dst: raksha::ir::types::proto::Decode
      Src: /src/raksha/src/ir/types/proto/schema.cc:43,1
    - Dst: ir::types::TypeFactory::RegisterSchema
      Src: /src/raksha/src/ir/types/proto/schema.cc:46,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/proto/schema.cc:46,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/proto/schema.cc:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - type_factory
    - schema_proto
    argTypes:
    - ir::types::TypeFactory
    - SchemaProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 47
    functionName: raksha::ir::types::proto::decode
    functionSourceFile: /src/raksha/src/ir/types/proto/schema.cc
    functionUses: 6
    functionsReached:
    - absl::flat_hash_map::insert
    - auto::at
    - SchemaProto::fields
    - std::move
    - CHECK
    - auto::size
    - raksha::ir::types::proto::Decode
    - ir::types::TypeFactory::RegisterSchema
    - SchemaProto::names
    linkageType: ''
    returnType: ir::types::Schema
    signature: "ir::types::Schema &decode(ir::types::TypeFactory &type_factory,\n
      \                               const SchemaProto &schema_proto)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ir::types::Schema::name
      Src: /src/raksha/src/ir/types/proto/schema.cc:52,1
    - Dst: SchemaProto::add_names
      Src: /src/raksha/src/ir/types/proto/schema.cc:53,1
    - Dst: SchemaProto::mutable_fields
      Src: /src/raksha/src/ir/types/proto/schema.cc:55,1
    - Dst: ir::types::Schema::fields
      Src: /src/raksha/src/ir/types/proto/schema.cc:56,1
    - Dst: auto::insert
      Src: /src/raksha/src/ir/types/proto/schema.cc:60,1
    - Dst: raksha::ir::types::proto::Encode
      Src: /src/raksha/src/ir/types/proto/schema.cc:60,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/types/proto/schema.cc:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - schema
    argTypes:
    - ir::types::Schema
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: raksha::ir::types::proto::encode
    functionSourceFile: /src/raksha/src/ir/types/proto/schema.cc
    functionUses: 2
    functionsReached:
    - auto::insert
    - raksha::ir::types::proto::Encode
    - SchemaProto::mutable_fields
    - ir::types::Schema::name
    - CHECK
    - ir::types::Schema::fields
    - SchemaProto::add_names
    linkageType: ''
    returnType: SchemaProto
    signature: SchemaProto encode(const ir::types::Schema &schema)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SchemaProto::names
      Src: /src/raksha/src/ir/types/proto/schema.cc:30,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/types/proto/schema.cc:31,1
    - Dst: auto::size
      Src: /src/raksha/src/ir/types/proto/schema.cc:31,1
    - Dst: auto::size
      Src: /src/raksha/src/ir/types/proto/schema.cc:34,1
    - Dst: auto::at
      Src: /src/raksha/src/ir/types/proto/schema.cc:35,1
    - Dst: SchemaProto::fields
      Src: /src/raksha/src/ir/types/proto/schema.cc:39,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/ir/types/proto/schema.cc:43,1
    - Dst: raksha::ir::types::proto::Decode
      Src: /src/raksha/src/ir/types/proto/schema.cc:43,1
    - Dst: ir::types::TypeFactory::RegisterSchema
      Src: /src/raksha/src/ir/types/proto/schema.cc:46,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/proto/schema.cc:46,1
    - Dst: std::move
      Src: /src/raksha/src/ir/types/proto/schema.cc:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - type_factory
    - schema_proto
    argTypes:
    - ir::types::TypeFactory
    - SchemaProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 47
    functionName: raksha::ir::types::proto::decode
    functionSourceFile: /src/raksha/src/ir/types/proto/schema.cc
    functionUses: 6
    functionsReached:
    - absl::flat_hash_map::insert
    - auto::at
    - SchemaProto::fields
    - std::move
    - CHECK
    - auto::size
    - raksha::ir::types::proto::Decode
    - ir::types::TypeFactory::RegisterSchema
    - SchemaProto::names
    linkageType: ''
    returnType: ir::types::Schema
    signature: "ir::types::Schema &decode(ir::types::TypeFactory &type_factory,\n
      \                               const SchemaProto &schema_proto)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ir::types::Schema::name
      Src: /src/raksha/src/ir/types/proto/schema.cc:52,1
    - Dst: SchemaProto::add_names
      Src: /src/raksha/src/ir/types/proto/schema.cc:53,1
    - Dst: SchemaProto::mutable_fields
      Src: /src/raksha/src/ir/types/proto/schema.cc:55,1
    - Dst: ir::types::Schema::fields
      Src: /src/raksha/src/ir/types/proto/schema.cc:56,1
    - Dst: auto::insert
      Src: /src/raksha/src/ir/types/proto/schema.cc:60,1
    - Dst: raksha::ir::types::proto::Encode
      Src: /src/raksha/src/ir/types/proto/schema.cc:60,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/types/proto/schema.cc:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - schema
    argTypes:
    - ir::types::Schema
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: raksha::ir::types::proto::encode
    functionSourceFile: /src/raksha/src/ir/types/proto/schema.cc
    functionUses: 2
    functionsReached:
    - auto::insert
    - raksha::ir::types::proto::Encode
    - SchemaProto::mutable_fields
    - ir::types::Schema::name
    - CHECK
    - ir::types::Schema::fields
    - SchemaProto::add_names
    linkageType: ''
    returnType: SchemaProto
    signature: SchemaProto encode(const ir::types::Schema &schema)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/types/proto/entity_type_test.cc:36,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/ir/types/proto/entity_type_test.cc:36,1
    - Dst: GetParam
      Src: /src/raksha/src/ir/types/proto/entity_type_test.cc:36,1
    - Dst: raksha::ir::types::proto::Encode
      Src: /src/raksha/src/ir/types/proto/entity_type_test.cc:40,1
    - Dst: raksha::ir::types::proto::Decode
      Src: /src/raksha/src/ir/types/proto/entity_type_test.cc:40,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/types/proto/entity_type_test.cc:41,1
    - Dst: google::protobuf::util::MessageDifferencer::Equals
      Src: /src/raksha/src/ir/types/proto/entity_type_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: raksha::ir::types::proto::TEST_P
    functionSourceFile: /src/raksha/src/ir/types/proto/entity_type_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::types::proto::Encode
    - google::protobuf::TextFormat::ParseFromString
    - ASSERT_TRUE
    - google::protobuf::util::MessageDifferencer::Equals
    - raksha::ir::types::proto::Decode
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(EntityTypeTest, RoundTripPreservesAllInformation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/types/proto/entity_type_test.cc:36,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/ir/types/proto/entity_type_test.cc:36,1
    - Dst: GetParam
      Src: /src/raksha/src/ir/types/proto/entity_type_test.cc:36,1
    - Dst: raksha::ir::types::proto::Encode
      Src: /src/raksha/src/ir/types/proto/entity_type_test.cc:40,1
    - Dst: raksha::ir::types::proto::Decode
      Src: /src/raksha/src/ir/types/proto/entity_type_test.cc:40,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/types/proto/entity_type_test.cc:41,1
    - Dst: google::protobuf::util::MessageDifferencer::Equals
      Src: /src/raksha/src/ir/types/proto/entity_type_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: raksha::ir::types::proto::TEST_P
    functionSourceFile: /src/raksha/src/ir/types/proto/entity_type_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::types::proto::Encode
    - google::protobuf::TextFormat::ParseFromString
    - ASSERT_TRUE
    - google::protobuf::util::MessageDifferencer::Equals
    - raksha::ir::types::proto::Decode
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(EntityTypeTest, RoundTripPreservesAllInformation)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: data_case
      Src: /src/raksha/src/ir/types/proto/type.cc:30,1
    - Dst: LOG
      Src: /src/raksha/src/ir/types/proto/type.cc:32,1
    - Dst: raksha::ir::types::proto::decode
      Src: /src/raksha/src/ir/types/proto/type.cc:34,1
    - Dst: primitive
      Src: /src/raksha/src/ir/types/proto/type.cc:34,1
    - Dst: raksha::ir::types::proto::decode
      Src: /src/raksha/src/ir/types/proto/type.cc:36,1
    - Dst: entity
      Src: /src/raksha/src/ir/types/proto/type.cc:36,1
    - Dst: LOG
      Src: /src/raksha/src/ir/types/proto/type.cc:38,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/types/proto/type.cc:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ' type_factory'
    - ' type_proto'
    argTypes:
    - TypeFactory
    - TypeProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 42
    functionName: raksha::ir::types::proto::Decode
    functionSourceFile: /src/raksha/src/ir/types/proto/type.cc
    functionUses: 6
    functionsReached:
    - primitive
    - data_case
    - raksha::ir::types::proto::decode
    - CHECK
    - LOG
    - entity
    linkageType: ''
    returnType: Type
    signature: Type Decode(TypeFactory& type_factory, const TypeProto& type_proto)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: type_base
      Src: /src/raksha/src/ir/types/proto/type.cc:45,1
    - Dst: kind
      Src: /src/raksha/src/ir/types/proto/type.cc:46,1
    - Dst: raksha::ir::types::proto::encodeAsTypeProto
      Src: /src/raksha/src/ir/types/proto/type.cc:48,1
    - Dst: static_cast<const PrimitiveType&>
      Src: /src/raksha/src/ir/types/proto/type.cc:48,1
    - Dst: raksha::ir::types::proto::encodeAsTypeProto
      Src: /src/raksha/src/ir/types/proto/type.cc:50,1
    - Dst: static_cast<const EntityType&>
      Src: /src/raksha/src/ir/types/proto/type.cc:50,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/types/proto/type.cc:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' type'
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: raksha::ir::types::proto::Encode
    functionSourceFile: /src/raksha/src/ir/types/proto/type.cc
    functionUses: 6
    functionsReached:
    - kind
    - raksha::ir::types::proto::encodeAsTypeProto
    - static_cast<const PrimitiveType&>
    - static_cast<const EntityType&>
    - type_base
    - CHECK
    linkageType: ''
    returnType: TypeProto
    signature: TypeProto Encode(const Type& type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: data_case
      Src: /src/raksha/src/ir/types/proto/type.cc:30,1
    - Dst: LOG
      Src: /src/raksha/src/ir/types/proto/type.cc:32,1
    - Dst: raksha::ir::types::proto::decode
      Src: /src/raksha/src/ir/types/proto/type.cc:34,1
    - Dst: primitive
      Src: /src/raksha/src/ir/types/proto/type.cc:34,1
    - Dst: raksha::ir::types::proto::decode
      Src: /src/raksha/src/ir/types/proto/type.cc:36,1
    - Dst: entity
      Src: /src/raksha/src/ir/types/proto/type.cc:36,1
    - Dst: LOG
      Src: /src/raksha/src/ir/types/proto/type.cc:38,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/types/proto/type.cc:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ' type_factory'
    - ' type_proto'
    argTypes:
    - TypeFactory
    - TypeProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 42
    functionName: raksha::ir::types::proto::Decode
    functionSourceFile: /src/raksha/src/ir/types/proto/type.cc
    functionUses: 6
    functionsReached:
    - primitive
    - data_case
    - raksha::ir::types::proto::decode
    - CHECK
    - LOG
    - entity
    linkageType: ''
    returnType: Type
    signature: Type Decode(TypeFactory& type_factory, const TypeProto& type_proto)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: type_base
      Src: /src/raksha/src/ir/types/proto/type.cc:45,1
    - Dst: kind
      Src: /src/raksha/src/ir/types/proto/type.cc:46,1
    - Dst: raksha::ir::types::proto::encodeAsTypeProto
      Src: /src/raksha/src/ir/types/proto/type.cc:48,1
    - Dst: static_cast<const PrimitiveType&>
      Src: /src/raksha/src/ir/types/proto/type.cc:48,1
    - Dst: raksha::ir::types::proto::encodeAsTypeProto
      Src: /src/raksha/src/ir/types/proto/type.cc:50,1
    - Dst: static_cast<const EntityType&>
      Src: /src/raksha/src/ir/types/proto/type.cc:50,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/types/proto/type.cc:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' type'
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: raksha::ir::types::proto::Encode
    functionSourceFile: /src/raksha/src/ir/types/proto/type.cc
    functionUses: 6
    functionsReached:
    - kind
    - raksha::ir::types::proto::encodeAsTypeProto
    - static_cast<const PrimitiveType&>
    - static_cast<const EntityType&>
    - type_base
    - CHECK
    linkageType: ''
    returnType: TypeProto
    signature: TypeProto Encode(const Type& type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/types/proto/entity_type.cc:24,1
    - Dst: has_schema
      Src: /src/raksha/src/ir/types/proto/entity_type.cc:24,1
    - Dst: MakeEntityType
      Src: /src/raksha/src/ir/types/proto/entity_type.cc:26,1
    - Dst: raksha::ir::types::proto::decode
      Src: /src/raksha/src/ir/types/proto/entity_type.cc:27,1
    - Dst: schema
      Src: /src/raksha/src/ir/types/proto/entity_type.cc:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' type_factory'
    - ' entity_type_proto'
    argTypes:
    - TypeFactory
    - EntityTypeProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: raksha::ir::types::proto::decode
    functionSourceFile: /src/raksha/src/ir/types/proto/entity_type.cc
    functionUses: 9
    functionsReached:
    - has_schema
    - MakeEntityType
    - schema
    - raksha::ir::types::proto::decode
    - CHECK
    linkageType: ''
    returnType: Type
    signature: "Type decode(TypeFactory& type_factory,\n            const EntityTypeProto&
      entity_type_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EntityTypeProto::mutable_schema
      Src: /src/raksha/src/ir/types/proto/entity_type.cc:32,1
    - Dst: raksha::ir::types::proto::encode
      Src: /src/raksha/src/ir/types/proto/entity_type.cc:32,1
    - Dst: schema
      Src: /src/raksha/src/ir/types/proto/entity_type.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' entity_type'
    argTypes:
    - EntityType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: raksha::ir::types::proto::encode
    functionSourceFile: /src/raksha/src/ir/types/proto/entity_type.cc
    functionUses: 3
    functionsReached:
    - schema
    - raksha::ir::types::proto::encode
    - EntityTypeProto::mutable_schema
    linkageType: ''
    returnType: EntityTypeProto
    signature: EntityTypeProto encode(const EntityType& entity_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TypeProto::mutable_entity
      Src: /src/raksha/src/ir/types/proto/entity_type.cc:38,1
    - Dst: raksha::ir::types::proto::encode
      Src: /src/raksha/src/ir/types/proto/entity_type.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' entity_type'
    argTypes:
    - EntityType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: raksha::ir::types::proto::encodeAsTypeProto
    functionSourceFile: /src/raksha/src/ir/types/proto/entity_type.cc
    functionUses: 2
    functionsReached:
    - TypeProto::mutable_entity
    - raksha::ir::types::proto::encode
    linkageType: ''
    returnType: TypeProto
    signature: TypeProto encodeAsTypeProto(const EntityType& entity_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/types/proto/entity_type.cc:24,1
    - Dst: has_schema
      Src: /src/raksha/src/ir/types/proto/entity_type.cc:24,1
    - Dst: MakeEntityType
      Src: /src/raksha/src/ir/types/proto/entity_type.cc:26,1
    - Dst: raksha::ir::types::proto::decode
      Src: /src/raksha/src/ir/types/proto/entity_type.cc:27,1
    - Dst: schema
      Src: /src/raksha/src/ir/types/proto/entity_type.cc:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' type_factory'
    - ' entity_type_proto'
    argTypes:
    - TypeFactory
    - EntityTypeProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: raksha::ir::types::proto::decode
    functionSourceFile: /src/raksha/src/ir/types/proto/entity_type.cc
    functionUses: 10
    functionsReached:
    - has_schema
    - MakeEntityType
    - schema
    - raksha::ir::types::proto::decode
    - CHECK
    linkageType: ''
    returnType: Type
    signature: "Type decode(TypeFactory& type_factory,\n            const EntityTypeProto&
      entity_type_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EntityTypeProto::mutable_schema
      Src: /src/raksha/src/ir/types/proto/entity_type.cc:32,1
    - Dst: raksha::ir::types::proto::encode
      Src: /src/raksha/src/ir/types/proto/entity_type.cc:32,1
    - Dst: schema
      Src: /src/raksha/src/ir/types/proto/entity_type.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' entity_type'
    argTypes:
    - EntityType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: raksha::ir::types::proto::encode
    functionSourceFile: /src/raksha/src/ir/types/proto/entity_type.cc
    functionUses: 5
    functionsReached:
    - schema
    - raksha::ir::types::proto::encode
    - EntityTypeProto::mutable_schema
    linkageType: ''
    returnType: EntityTypeProto
    signature: EntityTypeProto encode(const EntityType& entity_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TypeProto::mutable_entity
      Src: /src/raksha/src/ir/types/proto/entity_type.cc:38,1
    - Dst: raksha::ir::types::proto::encode
      Src: /src/raksha/src/ir/types/proto/entity_type.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' entity_type'
    argTypes:
    - EntityType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: raksha::ir::types::proto::encodeAsTypeProto
    functionSourceFile: /src/raksha/src/ir/types/proto/entity_type.cc
    functionUses: 2
    functionsReached:
    - TypeProto::mutable_entity
    - raksha::ir::types::proto::encode
    linkageType: ''
    returnType: TypeProto
    signature: TypeProto encodeAsTypeProto(const EntityType& entity_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/types/proto/primitive_type.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' type_factory'
    - ' primitive_type_proto'
    argTypes:
    - TypeFactory
    - PrimitiveTypeProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: raksha::ir::types::proto::decode
    functionSourceFile: /src/raksha/src/ir/types/proto/primitive_type.cc
    functionUses: 10
    functionsReached:
    - MakePrimitiveType
    linkageType: ''
    returnType: Type
    signature: "Type decode(TypeFactory& type_factory,\n            const PrimitiveTypeProto&
      primitive_type_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' primitive_type'
    argTypes:
    - PrimitiveType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: raksha::ir::types::proto::encode
    functionSourceFile: /src/raksha/src/ir/types/proto/primitive_type.cc
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: PrimitiveTypeProto
    signature: PrimitiveTypeProto encode(const PrimitiveType& primitive_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TypeProto::set_primitive
      Src: /src/raksha/src/ir/types/proto/primitive_type.cc:35,1
    - Dst: raksha::ir::types::proto::encode
      Src: /src/raksha/src/ir/types/proto/primitive_type.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' primitive_type'
    argTypes:
    - PrimitiveType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: raksha::ir::types::proto::encodeAsTypeProto
    functionSourceFile: /src/raksha/src/ir/types/proto/primitive_type.cc
    functionUses: 2
    functionsReached:
    - raksha::ir::types::proto::encode
    - TypeProto::set_primitive
    linkageType: ''
    returnType: TypeProto
    signature: TypeProto encodeAsTypeProto(const PrimitiveType& primitive_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakePrimitiveType
      Src: /src/raksha/src/ir/types/proto/primitive_type.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' type_factory'
    - ' primitive_type_proto'
    argTypes:
    - TypeFactory
    - PrimitiveTypeProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: raksha::ir::types::proto::decode
    functionSourceFile: /src/raksha/src/ir/types/proto/primitive_type.cc
    functionUses: 10
    functionsReached:
    - MakePrimitiveType
    linkageType: ''
    returnType: Type
    signature: "Type decode(TypeFactory& type_factory,\n            const PrimitiveTypeProto&
      primitive_type_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' primitive_type'
    argTypes:
    - PrimitiveType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: raksha::ir::types::proto::encode
    functionSourceFile: /src/raksha/src/ir/types/proto/primitive_type.cc
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: PrimitiveTypeProto
    signature: PrimitiveTypeProto encode(const PrimitiveType& primitive_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TypeProto::set_primitive
      Src: /src/raksha/src/ir/types/proto/primitive_type.cc:35,1
    - Dst: raksha::ir::types::proto::encode
      Src: /src/raksha/src/ir/types/proto/primitive_type.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' primitive_type'
    argTypes:
    - PrimitiveType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: raksha::ir::types::proto::encodeAsTypeProto
    functionSourceFile: /src/raksha/src/ir/types/proto/primitive_type.cc
    functionUses: 2
    functionsReached:
    - raksha::ir::types::proto::encode
    - TypeProto::set_primitive
    linkageType: ''
    returnType: TypeProto
    signature: TypeProto encodeAsTypeProto(const PrimitiveType& primitive_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Accept
      Src: /src/raksha/src/ir/dot/dot_generator.cc:41,1
    - Dst: DotGeneratorHelper::GetDotGraph
      Src: /src/raksha/src/ir/dot/dot_generator.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' module'
    - config
    argTypes:
    - Module
    - DotGeneratorConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: raksha::ir::dot::DotGeneratorHelper::ModuleAsDot
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 0
    functionsReached:
    - Accept
    - DotGeneratorHelper::GetDotGraph
    linkageType: ''
    returnType: std::string
    signature: "std::string ModuleAsDot(const Module& module,\n                                 DotGeneratorConfig
      config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/dot/dot_generator.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - config
    argTypes:
    - DotGeneratorConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: raksha::ir::dot::DotGeneratorHelper::DotGeneratorHelper
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void DotGeneratorHelper(DotGeneratorConfig config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parent
      Src: /src/raksha/src/ir/dot/dot_generator.cc:59,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/dot/dot_generator.cc:60,1
    - Dst: raksha::ir::Value::MakeDefaultOperationResultValue
      Src: /src/raksha/src/ir/dot/dot_generator.cc:61,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:62,1
    - Dst: raksha::ir::dot::DotGeneratorHelper::GetNodeName
      Src: /src/raksha/src/ir/dot/dot_generator.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: raksha::ir::dot::DotGeneratorHelper::GetNodeName
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 1
    functionsReached:
    - GetOrCreateID
    - raksha::ir::Value::MakeDefaultOperationResultValue
    - raksha::ir::dot::DotGeneratorHelper::GetNodeName
    - parent
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string GetNodeName(const Operation& operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/dot/dot_generator.cc:68,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: raksha::ir::dot::DotGeneratorHelper::GetNodeName
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 1
    functionsReached:
    - GetOrCreateID
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string GetNodeName(const Block& block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/raksha/src/ir/dot/dot_generator.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' storage'
    argTypes:
    - Storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: raksha::ir::dot::DotGeneratorHelper::GetNodeName
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 1
    functionsReached:
    - name
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view GetNodeName(const Storage& storage) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/ir/dot/dot_generator.cc:88,1
    - Dst: Edge
      Src: /src/raksha/src/ir/dot/dot_generator.cc:88,1
    - Dst: Node
      Src: /src/raksha/src/ir/dot/dot_generator.cc:88,1
    - Dst: Node
      Src: /src/raksha/src/ir/dot/dot_generator.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - tgt
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: raksha::ir::dot::DotGeneratorHelper::AddEdge
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 0
    functionsReached:
    - Edge
    - Node
    - insert
    linkageType: ''
    returnType: void
    signature: void AddEdge(absl::string_view src, absl::string_view tgt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/ir/dot/dot_generator.cc:108,1
    - Dst: std::string
      Src: /src/raksha/src/ir/dot/dot_generator.cc:108,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/dot/dot_generator.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node_name
    - ' op'
    argTypes:
    - absl::string_view
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: raksha::ir::dot::DotGeneratorHelper::AddOperationNode
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 0
    functionsReached:
    - CHECK
    - std::string
    - insert
    linkageType: ''
    returnType: void
    signature: "void DotGeneratorHelper::AddOperationNode(absl::string_view node_name,\n
      \                                         const Operation& op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/ir/dot/dot_generator.cc:114,1
    - Dst: std::string
      Src: /src/raksha/src/ir/dot/dot_generator.cc:114,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/dot/dot_generator.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node_name
    - ' op'
    argTypes:
    - absl::string_view
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: raksha::ir::dot::DotGeneratorHelper::AddBlockNode
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 0
    functionsReached:
    - CHECK
    - std::string
    - insert
    linkageType: ''
    returnType: void
    signature: "void DotGeneratorHelper::AddBlockNode(absl::string_view node_name,\n
      \                                     const Block& op)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::dot::DotGeneratorHelper::GetNodeName
      Src: /src/raksha/src/ir/dot/dot_generator.cc:120,1
    - Dst: find
      Src: /src/raksha/src/ir/dot/dot_generator.cc:121,1
    - Dst: end
      Src: /src/raksha/src/ir/dot/dot_generator.cc:122,1
    - Dst: insert
      Src: /src/raksha/src/ir/dot/dot_generator.cc:123,1
    - Dst: std::string
      Src: /src/raksha/src/ir/dot/dot_generator.cc:123,1
    - Dst: auto::second::insert
      Src: /src/raksha/src/ir/dot/dot_generator.cc:125,1
    - Dst: std::string
      Src: /src/raksha/src/ir/dot/dot_generator.cc:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' op'
    - name
    argTypes:
    - Operation
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: raksha::ir::dot::DotGeneratorHelper::AddResult
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 0
    functionsReached:
    - find
    - raksha::ir::dot::DotGeneratorHelper::GetNodeName
    - auto::second::insert
    - end
    - std::string
    - insert
    linkageType: ''
    returnType: void
    signature: "void DotGeneratorHelper::AddResult(const Operation& op,\n                                   absl::string_view
      name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::btree_set<std::string>::string>
      Src: /src/raksha/src/ir/dot/dot_generator.cc:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: raksha::ir::dot::GetEmptyStringBtreeSet
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 0
    functionsReached:
    - absl::btree_set<std::string>::string>
    linkageType: ''
    returnType: absl::btree_set<std::string>
    signature: absl::btree_set<std::string> & GetEmptyStringBtreeSet()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::btree_set<std::string>::string>
      Src: /src/raksha/src/ir/dot/dot_generator.cc:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: raksha::ir::dot::GetEmptyStringBtreeSet
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 0
    functionsReached:
    - absl::btree_set<std::string>::string>
    linkageType: ''
    returnType: absl::btree_set<std::string>
    signature: absl::btree_set<std::string> & GetEmptyStringBtreeSet()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::dot::DotGeneratorHelper::GetNodeName
      Src: /src/raksha/src/ir/dot/dot_generator.cc:155,1
    - Dst: find
      Src: /src/raksha/src/ir/dot/dot_generator.cc:156,1
    - Dst: end
      Src: /src/raksha/src/ir/dot/dot_generator.cc:158,1
    - Dst: GetEmptyStringBtreeSet
      Src: /src/raksha/src/ir/dot/dot_generator.cc:158,1
    - Dst: std::max
      Src: /src/raksha/src/ir/dot/dot_generator.cc:162,1
    - Dst: inputs
      Src: /src/raksha/src/ir/dot/dot_generator.cc:162,1
    - Dst: std::max
      Src: /src/raksha/src/ir/dot/dot_generator.cc:163,1
    - Dst: size
      Src: /src/raksha/src/ir/dot/dot_generator.cc:163,1
    - Dst: std::lcm
      Src: /src/raksha/src/ir/dot/dot_generator.cc:164,1
    - Dst: inputs
      Src: /src/raksha/src/ir/dot/dot_generator.cc:169,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:170,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/dot/dot_generator.cc:171,1
    - Dst: inputs
      Src: /src/raksha/src/ir/dot/dot_generator.cc:172,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/dot/dot_generator.cc:176,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:178,1
    - Dst: empty
      Src: /src/raksha/src/ir/dot/dot_generator.cc:182,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:183,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/dot/dot_generator.cc:185,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/dot/dot_generator.cc:188,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:190,1
    - Dst: operation_labeler
      Src: /src/raksha/src/ir/dot/dot_generator.cc:193,1
    - Dst: std::string::empty
      Src: /src/raksha/src/ir/dot/dot_generator.cc:195,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:197,1
    - Dst: attributes
      Src: /src/raksha/src/ir/dot/dot_generator.cc:200,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:202,1
    - Dst: raksha::ir::IRPrinter::PrintNamedMapInNameOrder
      Src: /src/raksha/src/ir/dot/dot_generator.cc:203,1
    - Dst: attributes
      Src: /src/raksha/src/ir/dot/dot_generator.cc:204,1
    - Dst: ToString
      Src: /src/raksha/src/ir/dot/dot_generator.cc:205,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:207,1
    - Dst: std::move
      Src: /src/raksha/src/ir/dot/dot_generator.cc:209,1
    - Dst: std::move
      Src: /src/raksha/src/ir/dot/dot_generator.cc:209,1
    - Dst: op
      Src: /src/raksha/src/ir/dot/dot_generator.cc:210,1
    - Dst: std::move
      Src: /src/raksha/src/ir/dot/dot_generator.cc:210,1
    - Dst: std::move
      Src: /src/raksha/src/ir/dot/dot_generator.cc:211,1
    - Dst: std::move
      Src: /src/raksha/src/ir/dot/dot_generator.cc:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' op'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 212
    functionName: raksha::ir::dot::DotGeneratorHelper::GetDotNode
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 0
    functionsReached:
    - op
    - std::max
    - find
    - absl::StrAppend
    - inputs
    - std::lcm
    - std::move
    - end
    - GetEmptyStringBtreeSet
    - ToString
    - operation_labeler
    - raksha::ir::IRPrinter::PrintNamedMapInNameOrder
    - absl::StrFormat
    - raksha::ir::dot::DotGeneratorHelper::GetNodeName
    - absl::StrJoin
    - attributes
    - std::string::empty
    - size
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string DotGeneratorHelper::GetDotNode(const Operation& op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/dot/dot_generator.cc:226,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/dot/dot_generator.cc:231,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:232,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/dot/dot_generator.cc:235,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/dot/dot_generator.cc:240,1
    - Dst: raksha::ir::dot::DotGeneratorHelper::GetDotNode
      Src: /src/raksha/src/ir/dot/dot_generator.cc:240,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/dot/dot_generator.cc:240,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/dot/dot_generator.cc:244,1
    - Dst: absl::PairFormatter
      Src: /src/raksha/src/ir/dot/dot_generator.cc:244,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 214
    functionDepth: 4
    functionLinenumber: 214
    functionLinenumberEnd: 247
    functionName: raksha::ir::dot::DotGeneratorHelper::GetDotGraph
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - absl::StrAppend
    - absl::PairFormatter
    - raksha::ir::dot::DotGeneratorHelper::GetDotNode
    - absl::StrJoin
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string DotGeneratorHelper::GetDotGraph()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::dot::DotGeneratorHelper::GetNodeName
      Src: /src/raksha/src/ir/dot/dot_generator.cc:250,1
    - Dst: raksha::ir::dot::DotGeneratorHelper::AddOperationNode
      Src: /src/raksha/src/ir/dot/dot_generator.cc:251,1
    - Dst: inputs
      Src: /src/raksha/src/ir/dot/dot_generator.cc:253,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:255,1
    - Dst: If
      Src: /src/raksha/src/ir/dot/dot_generator.cc:256,1
    - Dst: auto*::block
      Src: /src/raksha/src/ir/dot/dot_generator.cc:258,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:260,1
    - Dst: raksha::ir::dot::DotGeneratorHelper::GetNodeName
      Src: /src/raksha/src/ir/dot/dot_generator.cc:260,1
    - Dst: auto*::index
      Src: /src/raksha/src/ir/dot/dot_generator.cc:260,1
    - Dst: raksha::ir::dot::DotGeneratorHelper::AddEdge
      Src: /src/raksha/src/ir/dot/dot_generator.cc:261,1
    - Dst: If
      Src: /src/raksha/src/ir/dot/dot_generator.cc:262,1
    - Dst: auto*::operation
      Src: /src/raksha/src/ir/dot/dot_generator.cc:264,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:266,1
    - Dst: raksha::ir::dot::DotGeneratorHelper::GetNodeName
      Src: /src/raksha/src/ir/dot/dot_generator.cc:266,1
    - Dst: auto*::index
      Src: /src/raksha/src/ir/dot/dot_generator.cc:266,1
    - Dst: raksha::ir::dot::DotGeneratorHelper::AddEdge
      Src: /src/raksha/src/ir/dot/dot_generator.cc:267,1
    - Dst: raksha::ir::dot::DotGeneratorHelper::AddResult
      Src: /src/raksha/src/ir/dot/dot_generator.cc:268,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:268,1
    - Dst: auto*::index
      Src: /src/raksha/src/ir/dot/dot_generator.cc:268,1
    - Dst: If
      Src: /src/raksha/src/ir/dot/dot_generator.cc:269,1
    - Dst: raksha::ir::dot::DotGeneratorHelper::AddEdge
      Src: /src/raksha/src/ir/dot/dot_generator.cc:271,1
    - Dst: raksha::ir::dot::DotGeneratorHelper::GetNodeName
      Src: /src/raksha/src/ir/dot/dot_generator.cc:271,1
    - Dst: auto*::storage
      Src: /src/raksha/src/ir/dot/dot_generator.cc:271,1
    - Dst: Unit
      Src: /src/raksha/src/ir/dot/dot_generator.cc:274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 249
    functionDepth: 4
    functionLinenumber: 249
    functionLinenumberEnd: 275
    functionName: raksha::ir::dot::DotGeneratorHelper::PreVisit
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 0
    functionsReached:
    - auto*::operation
    - Unit
    - raksha::ir::dot::DotGeneratorHelper::AddResult
    - inputs
    - raksha::ir::dot::DotGeneratorHelper::GetNodeName
    - If
    - auto*::storage
    - auto*::index
    - absl::StrCat
    - raksha::ir::dot::DotGeneratorHelper::AddOperationNode
    - auto*::block
    - raksha::ir::dot::DotGeneratorHelper::AddEdge
    - absl::StrFormat
    linkageType: ''
    returnType: Unit
    signature: Unit DotGeneratorHelper::PreVisit(const Operation& operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::dot::DotGeneratorHelper::GetNodeName
      Src: /src/raksha/src/ir/dot/dot_generator.cc:278,1
    - Dst: raksha::ir::dot::DotGeneratorHelper::AddBlockNode
      Src: /src/raksha/src/ir/dot/dot_generator.cc:279,1
    - Dst: Unit
      Src: /src/raksha/src/ir/dot/dot_generator.cc:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: raksha::ir::dot::DotGeneratorHelper::PreVisit
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 0
    functionsReached:
    - Unit
    - raksha::ir::dot::DotGeneratorHelper::GetNodeName
    - raksha::ir::dot::DotGeneratorHelper::AddBlockNode
    linkageType: ''
    returnType: Unit
    signature: Unit DotGeneratorHelper::PreVisit(const Block& block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::dot::DotGeneratorHelper::ModuleAsDot
      Src: /src/raksha/src/ir/dot/dot_generator.cc:285,1
    - Dst: std::move
      Src: /src/raksha/src/ir/dot/dot_generator.cc:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' module'
    - config
    argTypes:
    - Module
    - DotGeneratorConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: raksha::ir::dot::DotGenerator::ModuleAsDot
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 0
    functionsReached:
    - std::move
    - raksha::ir::dot::DotGeneratorHelper::ModuleAsDot
    linkageType: ''
    returnType: std::string
    signature: "std::string DotGenerator::ModuleAsDot(const Module& module,\n                                      DotGeneratorConfig
      config) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Accept
      Src: /src/raksha/src/ir/dot/dot_generator.cc:41,1
    - Dst: DotGeneratorHelper::GetDotGraph
      Src: /src/raksha/src/ir/dot/dot_generator.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' module'
    - config
    argTypes:
    - Module
    - DotGeneratorConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: raksha::ir::dot::DotGeneratorHelper::ModuleAsDot
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 1
    functionsReached:
    - Accept
    - DotGeneratorHelper::GetDotGraph
    linkageType: ''
    returnType: std::string
    signature: "std::string ModuleAsDot(const Module& module,\n                                 DotGeneratorConfig
      config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/dot/dot_generator.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - config
    argTypes:
    - DotGeneratorConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: raksha::ir::dot::DotGeneratorHelper::DotGeneratorHelper
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void DotGeneratorHelper(DotGeneratorConfig config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parent
      Src: /src/raksha/src/ir/dot/dot_generator.cc:59,1
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/dot/dot_generator.cc:60,1
    - Dst: raksha::ir::Value::MakeDefaultOperationResultValue
      Src: /src/raksha/src/ir/dot/dot_generator.cc:61,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:62,1
    - Dst: raksha::ir::dot::DotGeneratorHelper::GetNodeName
      Src: /src/raksha/src/ir/dot/dot_generator.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: raksha::ir::dot::DotGeneratorHelper::GetNodeName
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 6
    functionsReached:
    - GetOrCreateID
    - raksha::ir::Value::MakeDefaultOperationResultValue
    - raksha::ir::dot::DotGeneratorHelper::GetNodeName
    - parent
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string GetNodeName(const Operation& operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetOrCreateID
      Src: /src/raksha/src/ir/dot/dot_generator.cc:68,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: raksha::ir::dot::DotGeneratorHelper::GetNodeName
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 6
    functionsReached:
    - GetOrCreateID
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string GetNodeName(const Block& block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/raksha/src/ir/dot/dot_generator.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' storage'
    argTypes:
    - Storage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: raksha::ir::dot::DotGeneratorHelper::GetNodeName
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 6
    functionsReached:
    - name
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view GetNodeName(const Storage& storage) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/ir/dot/dot_generator.cc:88,1
    - Dst: Edge
      Src: /src/raksha/src/ir/dot/dot_generator.cc:88,1
    - Dst: Node
      Src: /src/raksha/src/ir/dot/dot_generator.cc:88,1
    - Dst: Node
      Src: /src/raksha/src/ir/dot/dot_generator.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - tgt
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: raksha::ir::dot::DotGeneratorHelper::AddEdge
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 1
    functionsReached:
    - Edge
    - Node
    - insert
    linkageType: ''
    returnType: void
    signature: void AddEdge(absl::string_view src, absl::string_view tgt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/ir/dot/dot_generator.cc:108,1
    - Dst: std::string
      Src: /src/raksha/src/ir/dot/dot_generator.cc:108,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/dot/dot_generator.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node_name
    - ' op'
    argTypes:
    - absl::string_view
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: raksha::ir::dot::DotGeneratorHelper::AddOperationNode
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 1
    functionsReached:
    - CHECK
    - std::string
    - insert
    linkageType: ''
    returnType: void
    signature: "void DotGeneratorHelper::AddOperationNode(absl::string_view node_name,\n
      \                                         const Operation& op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/ir/dot/dot_generator.cc:114,1
    - Dst: std::string
      Src: /src/raksha/src/ir/dot/dot_generator.cc:114,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/dot/dot_generator.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node_name
    - ' op'
    argTypes:
    - absl::string_view
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: raksha::ir::dot::DotGeneratorHelper::AddBlockNode
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 1
    functionsReached:
    - CHECK
    - std::string
    - insert
    linkageType: ''
    returnType: void
    signature: "void DotGeneratorHelper::AddBlockNode(absl::string_view node_name,\n
      \                                     const Block& op)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::dot::DotGeneratorHelper::GetNodeName
      Src: /src/raksha/src/ir/dot/dot_generator.cc:120,1
    - Dst: find
      Src: /src/raksha/src/ir/dot/dot_generator.cc:121,1
    - Dst: end
      Src: /src/raksha/src/ir/dot/dot_generator.cc:122,1
    - Dst: insert
      Src: /src/raksha/src/ir/dot/dot_generator.cc:123,1
    - Dst: std::string
      Src: /src/raksha/src/ir/dot/dot_generator.cc:123,1
    - Dst: auto::second::insert
      Src: /src/raksha/src/ir/dot/dot_generator.cc:125,1
    - Dst: std::string
      Src: /src/raksha/src/ir/dot/dot_generator.cc:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' op'
    - name
    argTypes:
    - Operation
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: raksha::ir::dot::DotGeneratorHelper::AddResult
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 1
    functionsReached:
    - find
    - raksha::ir::dot::DotGeneratorHelper::GetNodeName
    - auto::second::insert
    - end
    - std::string
    - insert
    linkageType: ''
    returnType: void
    signature: "void DotGeneratorHelper::AddResult(const Operation& op,\n                                   absl::string_view
      name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::btree_set<std::string>::string>
      Src: /src/raksha/src/ir/dot/dot_generator.cc:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: raksha::ir::dot::GetEmptyStringBtreeSet
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 0
    functionsReached:
    - absl::btree_set<std::string>::string>
    linkageType: ''
    returnType: absl::btree_set<std::string>
    signature: absl::btree_set<std::string> & GetEmptyStringBtreeSet()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::btree_set<std::string>::string>
      Src: /src/raksha/src/ir/dot/dot_generator.cc:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: raksha::ir::dot::GetEmptyStringBtreeSet
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 0
    functionsReached:
    - absl::btree_set<std::string>::string>
    linkageType: ''
    returnType: absl::btree_set<std::string>
    signature: absl::btree_set<std::string> & GetEmptyStringBtreeSet()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::dot::DotGeneratorHelper::GetNodeName
      Src: /src/raksha/src/ir/dot/dot_generator.cc:155,1
    - Dst: find
      Src: /src/raksha/src/ir/dot/dot_generator.cc:156,1
    - Dst: end
      Src: /src/raksha/src/ir/dot/dot_generator.cc:158,1
    - Dst: GetEmptyStringBtreeSet
      Src: /src/raksha/src/ir/dot/dot_generator.cc:158,1
    - Dst: std::max
      Src: /src/raksha/src/ir/dot/dot_generator.cc:162,1
    - Dst: inputs
      Src: /src/raksha/src/ir/dot/dot_generator.cc:162,1
    - Dst: std::max
      Src: /src/raksha/src/ir/dot/dot_generator.cc:163,1
    - Dst: size
      Src: /src/raksha/src/ir/dot/dot_generator.cc:163,1
    - Dst: std::lcm
      Src: /src/raksha/src/ir/dot/dot_generator.cc:164,1
    - Dst: inputs
      Src: /src/raksha/src/ir/dot/dot_generator.cc:169,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:170,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/dot/dot_generator.cc:171,1
    - Dst: inputs
      Src: /src/raksha/src/ir/dot/dot_generator.cc:172,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/dot/dot_generator.cc:176,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:178,1
    - Dst: empty
      Src: /src/raksha/src/ir/dot/dot_generator.cc:182,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:183,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/dot/dot_generator.cc:185,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/dot/dot_generator.cc:188,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:190,1
    - Dst: operation_labeler
      Src: /src/raksha/src/ir/dot/dot_generator.cc:193,1
    - Dst: std::string::empty
      Src: /src/raksha/src/ir/dot/dot_generator.cc:195,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:197,1
    - Dst: attributes
      Src: /src/raksha/src/ir/dot/dot_generator.cc:200,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:202,1
    - Dst: raksha::ir::IRPrinter::PrintNamedMapInNameOrder
      Src: /src/raksha/src/ir/dot/dot_generator.cc:203,1
    - Dst: attributes
      Src: /src/raksha/src/ir/dot/dot_generator.cc:204,1
    - Dst: ToString
      Src: /src/raksha/src/ir/dot/dot_generator.cc:205,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:207,1
    - Dst: std::move
      Src: /src/raksha/src/ir/dot/dot_generator.cc:209,1
    - Dst: std::move
      Src: /src/raksha/src/ir/dot/dot_generator.cc:209,1
    - Dst: op
      Src: /src/raksha/src/ir/dot/dot_generator.cc:210,1
    - Dst: std::move
      Src: /src/raksha/src/ir/dot/dot_generator.cc:210,1
    - Dst: std::move
      Src: /src/raksha/src/ir/dot/dot_generator.cc:211,1
    - Dst: std::move
      Src: /src/raksha/src/ir/dot/dot_generator.cc:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' op'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 212
    functionName: raksha::ir::dot::DotGeneratorHelper::GetDotNode
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 1
    functionsReached:
    - op
    - std::max
    - find
    - absl::StrAppend
    - inputs
    - std::lcm
    - std::move
    - end
    - GetEmptyStringBtreeSet
    - ToString
    - operation_labeler
    - raksha::ir::IRPrinter::PrintNamedMapInNameOrder
    - absl::StrFormat
    - raksha::ir::dot::DotGeneratorHelper::GetNodeName
    - absl::StrJoin
    - attributes
    - std::string::empty
    - size
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string DotGeneratorHelper::GetDotNode(const Operation& op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/dot/dot_generator.cc:226,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/dot/dot_generator.cc:231,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:232,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/dot/dot_generator.cc:235,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/dot/dot_generator.cc:240,1
    - Dst: raksha::ir::dot::DotGeneratorHelper::GetDotNode
      Src: /src/raksha/src/ir/dot/dot_generator.cc:240,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/dot/dot_generator.cc:240,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/dot/dot_generator.cc:244,1
    - Dst: absl::PairFormatter
      Src: /src/raksha/src/ir/dot/dot_generator.cc:244,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 214
    functionDepth: 4
    functionLinenumber: 214
    functionLinenumberEnd: 247
    functionName: raksha::ir::dot::DotGeneratorHelper::GetDotGraph
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - absl::StrAppend
    - absl::PairFormatter
    - raksha::ir::dot::DotGeneratorHelper::GetDotNode
    - absl::StrJoin
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string DotGeneratorHelper::GetDotGraph()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::dot::DotGeneratorHelper::GetNodeName
      Src: /src/raksha/src/ir/dot/dot_generator.cc:250,1
    - Dst: raksha::ir::dot::DotGeneratorHelper::AddOperationNode
      Src: /src/raksha/src/ir/dot/dot_generator.cc:251,1
    - Dst: inputs
      Src: /src/raksha/src/ir/dot/dot_generator.cc:253,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:255,1
    - Dst: If
      Src: /src/raksha/src/ir/dot/dot_generator.cc:256,1
    - Dst: auto*::block
      Src: /src/raksha/src/ir/dot/dot_generator.cc:258,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:260,1
    - Dst: raksha::ir::dot::DotGeneratorHelper::GetNodeName
      Src: /src/raksha/src/ir/dot/dot_generator.cc:260,1
    - Dst: auto*::index
      Src: /src/raksha/src/ir/dot/dot_generator.cc:260,1
    - Dst: raksha::ir::dot::DotGeneratorHelper::AddEdge
      Src: /src/raksha/src/ir/dot/dot_generator.cc:261,1
    - Dst: If
      Src: /src/raksha/src/ir/dot/dot_generator.cc:262,1
    - Dst: auto*::operation
      Src: /src/raksha/src/ir/dot/dot_generator.cc:264,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:266,1
    - Dst: raksha::ir::dot::DotGeneratorHelper::GetNodeName
      Src: /src/raksha/src/ir/dot/dot_generator.cc:266,1
    - Dst: auto*::index
      Src: /src/raksha/src/ir/dot/dot_generator.cc:266,1
    - Dst: raksha::ir::dot::DotGeneratorHelper::AddEdge
      Src: /src/raksha/src/ir/dot/dot_generator.cc:267,1
    - Dst: raksha::ir::dot::DotGeneratorHelper::AddResult
      Src: /src/raksha/src/ir/dot/dot_generator.cc:268,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/dot/dot_generator.cc:268,1
    - Dst: auto*::index
      Src: /src/raksha/src/ir/dot/dot_generator.cc:268,1
    - Dst: If
      Src: /src/raksha/src/ir/dot/dot_generator.cc:269,1
    - Dst: raksha::ir::dot::DotGeneratorHelper::AddEdge
      Src: /src/raksha/src/ir/dot/dot_generator.cc:271,1
    - Dst: raksha::ir::dot::DotGeneratorHelper::GetNodeName
      Src: /src/raksha/src/ir/dot/dot_generator.cc:271,1
    - Dst: auto*::storage
      Src: /src/raksha/src/ir/dot/dot_generator.cc:271,1
    - Dst: Unit
      Src: /src/raksha/src/ir/dot/dot_generator.cc:274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 249
    functionDepth: 4
    functionLinenumber: 249
    functionLinenumberEnd: 275
    functionName: raksha::ir::dot::DotGeneratorHelper::PreVisit
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 0
    functionsReached:
    - auto*::operation
    - Unit
    - raksha::ir::dot::DotGeneratorHelper::AddResult
    - inputs
    - raksha::ir::dot::DotGeneratorHelper::GetNodeName
    - If
    - auto*::storage
    - auto*::index
    - absl::StrCat
    - raksha::ir::dot::DotGeneratorHelper::AddOperationNode
    - auto*::block
    - raksha::ir::dot::DotGeneratorHelper::AddEdge
    - absl::StrFormat
    linkageType: ''
    returnType: Unit
    signature: Unit DotGeneratorHelper::PreVisit(const Operation& operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::dot::DotGeneratorHelper::GetNodeName
      Src: /src/raksha/src/ir/dot/dot_generator.cc:278,1
    - Dst: raksha::ir::dot::DotGeneratorHelper::AddBlockNode
      Src: /src/raksha/src/ir/dot/dot_generator.cc:279,1
    - Dst: Unit
      Src: /src/raksha/src/ir/dot/dot_generator.cc:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' block'
    argTypes:
    - Block
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: raksha::ir::dot::DotGeneratorHelper::PreVisit
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 0
    functionsReached:
    - Unit
    - raksha::ir::dot::DotGeneratorHelper::GetNodeName
    - raksha::ir::dot::DotGeneratorHelper::AddBlockNode
    linkageType: ''
    returnType: Unit
    signature: Unit DotGeneratorHelper::PreVisit(const Block& block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::dot::DotGeneratorHelper::ModuleAsDot
      Src: /src/raksha/src/ir/dot/dot_generator.cc:285,1
    - Dst: std::move
      Src: /src/raksha/src/ir/dot/dot_generator.cc:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' module'
    - config
    argTypes:
    - Module
    - DotGeneratorConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: raksha::ir::dot::DotGenerator::ModuleAsDot
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator.cc
    functionUses: 0
    functionsReached:
    - std::move
    - raksha::ir::dot::DotGeneratorHelper::ModuleAsDot
    linkageType: ''
    returnType: std::string
    signature: "std::string DotGenerator::ModuleAsDot(const Module& module,\n                                      DotGeneratorConfig
      config) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterOperator
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:37,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:38,1
    - Dst: RegisterOperator
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:39,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:40,1
    - Dst: RegisterOperator
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:41,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: raksha::ir::dot::DotGeneratorTest::DotGeneratorTest
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - RegisterOperator
    - std::make_unique<Operator>
    linkageType: ''
    returnType: void
    signature: void DotGeneratorTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: '& pair_op() const'
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operator
    signature: Operator & pair_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: '& plus_op() const'
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operator
    signature: Operator & plus_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: '& minus_op() const'
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operator
    signature: Operator & minus_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: '& global_module()'
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Module
    signature: Module & global_module()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::dot::GetDefault
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:53,1
    - Dst: DotGenerator::ModuleAsDot
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:55,1
    - Dst: LOG
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:56,1
    - Dst: absl::StrSplit
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:58,1
    - Dst: absl::SkipWhitespace
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:58,1
    - Dst: absl::c_for_each
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:59,1
    - Dst: absl::StripLeadingAsciiWhitespace
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:60,1
    - Dst: absl::c_for_each
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:62,1
    - Dst: absl::StripTrailingAsciiWhitespace
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: raksha::ir::dot::DotGeneratorTest::GetDotGraphAsWhitespaceTrimmedLines
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::dot::GetDefault
    - absl::StripTrailingAsciiWhitespace
    - DotGenerator::ModuleAsDot
    - LOG
    - absl::StrSplit
    - absl::StripLeadingAsciiWhitespace
    - absl::c_for_each
    - absl::SkipWhitespace
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> GetDotGraphAsWhitespaceTrimmedLines(\n      const
      Module& module,\n      DotGeneratorConfig config = DotGeneratorConfig::GetDefault())
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:70,1
    - Dst: absl::c_find
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:70,1
    - Dst: absl::c_find
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' dot_graph_lines'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: raksha::ir::dot::DotGeneratorTest::GetNodes
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_range
    - absl::c_find
    linkageType: ''
    returnType: utils::iterator_range<std::vector<std::string>::const_iterator>
    signature: "utils::iterator_range<std::vector<std::string>::const_iterator> GetNodes(\n
      \     const std::vector<std::string>& dot_graph_lines) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:76,1
    - Dst: absl::c_find
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:76,1
    - Dst: absl::c_find
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' dot_graph_lines'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: raksha::ir::dot::DotGeneratorTest::GetEdges
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_range
    - absl::c_find
    linkageType: ''
    returnType: utils::iterator_range<std::vector<std::string>::const_iterator>
    signature: "utils::iterator_range<std::vector<std::string>::const_iterator> GetEdges(\n
      \     const std::vector<std::string>& dot_graph_lines) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:95,1
    - Dst: BlockBuilder
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:95,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:96,1
    - Dst: BlockBuilder
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:96,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:98,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:98,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:99,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:99,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 102
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - global_module
    - testing::UnorderedElementsAre
    - GetDotGraphAsWhitespaceTrimmedLines
    - BlockBuilder
    - EXPECT_THAT
    - GetNodes
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, CreatesNodeForBlocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:112,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:113,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:113,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:114,1
    - Dst: minus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:114,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:115,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:115,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:117,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:117,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:118,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:119,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 125
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - global_module
    - testing::UnorderedElementsAre
    - minus_op
    - GetDotGraphAsWhitespaceTrimmedLines
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - EXPECT_THAT
    - BlockBuilder::build
    - plus_op
    - GetNodes
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, CreatesNodesForOperations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:134,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:135,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:136,1
    - Dst: Attribute::Create<StringAttribute>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:137,1
    - Dst: Attribute::Create<Int64Attribute>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:138,1
    - Dst: Attribute::Create<FloatAttribute>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:139,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:141,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:141,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:143,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:143,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:144,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:145,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 149
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - NamedAttributeMap
    - global_module
    - testing::UnorderedElementsAre
    - GetDotGraphAsWhitespaceTrimmedLines
    - Attribute::Create<Int64Attribute>
    - EXPECT_THAT
    - BlockBuilder::build
    - Attribute::Create<FloatAttribute>
    - plus_op
    - Attribute::Create<StringAttribute>
    - GetNodes
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, CreatesAttributesInNodesForOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:152,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:160,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:160,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:161,1
    - Dst: minus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:161,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:162,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:162,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:164,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:164,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:165,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:166,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 171
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - global_module
    - testing::UnorderedElementsAre
    - minus_op
    - GetDotGraphAsWhitespaceTrimmedLines
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - EXPECT_THAT
    - BlockBuilder::build
    - plus_op
    - GetNodes
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, CreatesInputPortsInNodesForOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:174,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:183,1
    - Dst: pair_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:183,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:184,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:184,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:185,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:185,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:186,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:186,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:187,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:187,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:189,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:189,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:190,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:191,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 196
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - global_module
    - Value
    - testing::UnorderedElementsAre
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - GetDotGraphAsWhitespaceTrimmedLines
    - pair_op
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - EXPECT_THAT
    - BlockBuilder::build
    - plus_op
    - GetNodes
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, CreatesOutputPortsInNodesForOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:200,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:208,1
    - Dst: minus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:208,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:209,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:210,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:210,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:210,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:211,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:211,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:212,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:212,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:213,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:213,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:214,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:214,1
    - Dst: LOG
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:215,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:215,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:215,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:217,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:217,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:219,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:220,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:221,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:226,1
    - Dst: GetEdges
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:226,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 230
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - global_module
    - Value
    - GetEdges
    - testing::UnorderedElementsAre
    - minus_op
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - GetDotGraphAsWhitespaceTrimmedLines
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - EXPECT_THAT
    - BlockBuilder::build
    - LOG
    - plus_op
    - GetNodes
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, AddsEdgeFromOperationResultToInputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:238,1
    - Dst: op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:238,1
    - Dst: size
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:239,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:248,1
    - Dst: pair_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:248,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:249,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:249,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:250,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:250,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:251,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:251,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:252,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:252,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:254,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:254,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:256,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:257,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 262
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - op
    - global_module
    - Value
    - testing::UnorderedElementsAre
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - GetDotGraphAsWhitespaceTrimmedLines
    - pair_op
    - EXPECT_THAT
    - BlockBuilder::build
    - plus_op
    - size
    - GetNodes
    - BlockBuilder::AddOperation
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, AddsAdditionalLabelToOperationNodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterOperator
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:37,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:38,1
    - Dst: RegisterOperator
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:39,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:40,1
    - Dst: RegisterOperator
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:41,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: raksha::ir::dot::DotGeneratorTest::DotGeneratorTest
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - RegisterOperator
    - std::make_unique<Operator>
    linkageType: ''
    returnType: void
    signature: void DotGeneratorTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: '& pair_op() const'
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operator
    signature: Operator & pair_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: '& plus_op() const'
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operator
    signature: Operator & plus_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: '& minus_op() const'
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operator
    signature: Operator & minus_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: '& global_module()'
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Module
    signature: Module & global_module()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::dot::GetDefault
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:53,1
    - Dst: DotGenerator::ModuleAsDot
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:55,1
    - Dst: LOG
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:56,1
    - Dst: absl::StrSplit
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:58,1
    - Dst: absl::SkipWhitespace
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:58,1
    - Dst: absl::c_for_each
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:59,1
    - Dst: absl::StripLeadingAsciiWhitespace
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:60,1
    - Dst: absl::c_for_each
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:62,1
    - Dst: absl::StripTrailingAsciiWhitespace
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: raksha::ir::dot::DotGeneratorTest::GetDotGraphAsWhitespaceTrimmedLines
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::dot::GetDefault
    - absl::StripTrailingAsciiWhitespace
    - DotGenerator::ModuleAsDot
    - LOG
    - absl::StrSplit
    - absl::StripLeadingAsciiWhitespace
    - absl::c_for_each
    - absl::SkipWhitespace
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> GetDotGraphAsWhitespaceTrimmedLines(\n      const
      Module& module,\n      DotGeneratorConfig config = DotGeneratorConfig::GetDefault())
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:70,1
    - Dst: absl::c_find
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:70,1
    - Dst: absl::c_find
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' dot_graph_lines'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: raksha::ir::dot::DotGeneratorTest::GetNodes
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_range
    - absl::c_find
    linkageType: ''
    returnType: utils::iterator_range<std::vector<std::string>::const_iterator>
    signature: "utils::iterator_range<std::vector<std::string>::const_iterator> GetNodes(\n
      \     const std::vector<std::string>& dot_graph_lines) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:76,1
    - Dst: absl::c_find
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:76,1
    - Dst: absl::c_find
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' dot_graph_lines'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: raksha::ir::dot::DotGeneratorTest::GetEdges
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_range
    - absl::c_find
    linkageType: ''
    returnType: utils::iterator_range<std::vector<std::string>::const_iterator>
    signature: "utils::iterator_range<std::vector<std::string>::const_iterator> GetEdges(\n
      \     const std::vector<std::string>& dot_graph_lines) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:95,1
    - Dst: BlockBuilder
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:95,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:96,1
    - Dst: BlockBuilder
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:96,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:98,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:98,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:99,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:99,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 102
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - global_module
    - testing::UnorderedElementsAre
    - GetDotGraphAsWhitespaceTrimmedLines
    - BlockBuilder
    - EXPECT_THAT
    - GetNodes
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, CreatesNodeForBlocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:112,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:113,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:113,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:114,1
    - Dst: minus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:114,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:115,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:115,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:117,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:117,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:118,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:119,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 125
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - global_module
    - testing::UnorderedElementsAre
    - minus_op
    - GetDotGraphAsWhitespaceTrimmedLines
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - EXPECT_THAT
    - BlockBuilder::build
    - plus_op
    - GetNodes
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, CreatesNodesForOperations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:134,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:135,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:136,1
    - Dst: Attribute::Create<StringAttribute>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:137,1
    - Dst: Attribute::Create<Int64Attribute>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:138,1
    - Dst: Attribute::Create<FloatAttribute>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:139,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:141,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:141,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:143,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:143,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:144,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:145,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 149
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - NamedAttributeMap
    - global_module
    - testing::UnorderedElementsAre
    - GetDotGraphAsWhitespaceTrimmedLines
    - Attribute::Create<Int64Attribute>
    - EXPECT_THAT
    - BlockBuilder::build
    - Attribute::Create<FloatAttribute>
    - plus_op
    - Attribute::Create<StringAttribute>
    - GetNodes
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, CreatesAttributesInNodesForOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:152,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:160,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:160,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:161,1
    - Dst: minus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:161,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:162,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:162,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:164,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:164,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:165,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:166,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 171
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - global_module
    - testing::UnorderedElementsAre
    - minus_op
    - GetDotGraphAsWhitespaceTrimmedLines
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - EXPECT_THAT
    - BlockBuilder::build
    - plus_op
    - GetNodes
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, CreatesInputPortsInNodesForOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:174,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:183,1
    - Dst: pair_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:183,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:184,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:184,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:185,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:185,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:186,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:186,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:187,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:187,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:189,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:189,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:190,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:191,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 196
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - global_module
    - Value
    - testing::UnorderedElementsAre
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - GetDotGraphAsWhitespaceTrimmedLines
    - pair_op
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - EXPECT_THAT
    - BlockBuilder::build
    - plus_op
    - GetNodes
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, CreatesOutputPortsInNodesForOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:200,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:208,1
    - Dst: minus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:208,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:209,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:210,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:210,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:210,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:211,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:211,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:212,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:212,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:213,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:213,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:214,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:214,1
    - Dst: LOG
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:215,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:215,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:215,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:217,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:217,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:219,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:220,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:221,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:226,1
    - Dst: GetEdges
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:226,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 230
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - global_module
    - Value
    - GetEdges
    - testing::UnorderedElementsAre
    - minus_op
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - GetDotGraphAsWhitespaceTrimmedLines
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - EXPECT_THAT
    - BlockBuilder::build
    - LOG
    - plus_op
    - GetNodes
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, AddsEdgeFromOperationResultToInputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:238,1
    - Dst: op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:238,1
    - Dst: size
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:239,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:248,1
    - Dst: pair_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:248,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:249,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:249,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:250,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:250,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:251,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:251,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:252,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:252,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:254,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:254,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:256,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:257,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 262
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - op
    - global_module
    - Value
    - testing::UnorderedElementsAre
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - GetDotGraphAsWhitespaceTrimmedLines
    - pair_op
    - EXPECT_THAT
    - BlockBuilder::build
    - plus_op
    - size
    - GetNodes
    - BlockBuilder::AddOperation
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, AddsAdditionalLabelToOperationNodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterOperator
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:37,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:38,1
    - Dst: RegisterOperator
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:39,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:40,1
    - Dst: RegisterOperator
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:41,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: raksha::ir::dot::DotGeneratorTest::DotGeneratorTest
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - RegisterOperator
    - std::make_unique<Operator>
    linkageType: ''
    returnType: void
    signature: void DotGeneratorTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: '& pair_op() const'
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operator
    signature: Operator & pair_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: '& plus_op() const'
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operator
    signature: Operator & plus_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: '& minus_op() const'
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operator
    signature: Operator & minus_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: '& global_module()'
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Module
    signature: Module & global_module()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::dot::GetDefault
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:53,1
    - Dst: DotGenerator::ModuleAsDot
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:55,1
    - Dst: LOG
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:56,1
    - Dst: absl::StrSplit
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:58,1
    - Dst: absl::SkipWhitespace
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:58,1
    - Dst: absl::c_for_each
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:59,1
    - Dst: absl::StripLeadingAsciiWhitespace
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:60,1
    - Dst: absl::c_for_each
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:62,1
    - Dst: absl::StripTrailingAsciiWhitespace
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: raksha::ir::dot::DotGeneratorTest::GetDotGraphAsWhitespaceTrimmedLines
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::dot::GetDefault
    - absl::StripTrailingAsciiWhitespace
    - DotGenerator::ModuleAsDot
    - LOG
    - absl::StrSplit
    - absl::StripLeadingAsciiWhitespace
    - absl::c_for_each
    - absl::SkipWhitespace
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> GetDotGraphAsWhitespaceTrimmedLines(\n      const
      Module& module,\n      DotGeneratorConfig config = DotGeneratorConfig::GetDefault())
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:70,1
    - Dst: absl::c_find
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:70,1
    - Dst: absl::c_find
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' dot_graph_lines'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: raksha::ir::dot::DotGeneratorTest::GetNodes
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_range
    - absl::c_find
    linkageType: ''
    returnType: utils::iterator_range<std::vector<std::string>::const_iterator>
    signature: "utils::iterator_range<std::vector<std::string>::const_iterator> GetNodes(\n
      \     const std::vector<std::string>& dot_graph_lines) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:76,1
    - Dst: absl::c_find
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:76,1
    - Dst: absl::c_find
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' dot_graph_lines'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: raksha::ir::dot::DotGeneratorTest::GetEdges
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_range
    - absl::c_find
    linkageType: ''
    returnType: utils::iterator_range<std::vector<std::string>::const_iterator>
    signature: "utils::iterator_range<std::vector<std::string>::const_iterator> GetEdges(\n
      \     const std::vector<std::string>& dot_graph_lines) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:95,1
    - Dst: BlockBuilder
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:95,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:96,1
    - Dst: BlockBuilder
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:96,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:98,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:98,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:99,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:99,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 102
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - global_module
    - testing::UnorderedElementsAre
    - GetDotGraphAsWhitespaceTrimmedLines
    - BlockBuilder
    - EXPECT_THAT
    - GetNodes
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, CreatesNodeForBlocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:112,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:113,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:113,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:114,1
    - Dst: minus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:114,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:115,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:115,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:117,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:117,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:118,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:119,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 125
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - global_module
    - testing::UnorderedElementsAre
    - minus_op
    - GetDotGraphAsWhitespaceTrimmedLines
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - EXPECT_THAT
    - BlockBuilder::build
    - plus_op
    - GetNodes
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, CreatesNodesForOperations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:134,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:135,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:136,1
    - Dst: Attribute::Create<StringAttribute>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:137,1
    - Dst: Attribute::Create<Int64Attribute>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:138,1
    - Dst: Attribute::Create<FloatAttribute>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:139,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:141,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:141,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:143,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:143,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:144,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:145,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 149
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - NamedAttributeMap
    - global_module
    - testing::UnorderedElementsAre
    - GetDotGraphAsWhitespaceTrimmedLines
    - Attribute::Create<Int64Attribute>
    - EXPECT_THAT
    - BlockBuilder::build
    - Attribute::Create<FloatAttribute>
    - plus_op
    - Attribute::Create<StringAttribute>
    - GetNodes
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, CreatesAttributesInNodesForOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:152,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:160,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:160,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:161,1
    - Dst: minus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:161,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:162,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:162,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:164,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:164,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:165,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:166,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 171
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - global_module
    - testing::UnorderedElementsAre
    - minus_op
    - GetDotGraphAsWhitespaceTrimmedLines
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - EXPECT_THAT
    - BlockBuilder::build
    - plus_op
    - GetNodes
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, CreatesInputPortsInNodesForOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:174,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:183,1
    - Dst: pair_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:183,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:184,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:184,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:185,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:185,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:186,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:186,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:187,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:187,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:189,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:189,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:190,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:191,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 196
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - global_module
    - Value
    - testing::UnorderedElementsAre
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - GetDotGraphAsWhitespaceTrimmedLines
    - pair_op
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - EXPECT_THAT
    - BlockBuilder::build
    - plus_op
    - GetNodes
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, CreatesOutputPortsInNodesForOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:200,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:208,1
    - Dst: minus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:208,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:209,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:210,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:210,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:210,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:211,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:211,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:212,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:212,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:213,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:213,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:214,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:214,1
    - Dst: LOG
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:215,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:215,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:215,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:217,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:217,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:219,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:220,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:221,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:226,1
    - Dst: GetEdges
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:226,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 230
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - global_module
    - Value
    - GetEdges
    - testing::UnorderedElementsAre
    - minus_op
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - GetDotGraphAsWhitespaceTrimmedLines
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - EXPECT_THAT
    - BlockBuilder::build
    - LOG
    - plus_op
    - GetNodes
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, AddsEdgeFromOperationResultToInputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:238,1
    - Dst: op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:238,1
    - Dst: size
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:239,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:248,1
    - Dst: pair_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:248,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:249,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:249,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:250,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:250,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:251,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:251,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:252,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:252,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:254,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:254,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:256,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:257,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 262
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - op
    - global_module
    - Value
    - testing::UnorderedElementsAre
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - GetDotGraphAsWhitespaceTrimmedLines
    - pair_op
    - EXPECT_THAT
    - BlockBuilder::build
    - plus_op
    - size
    - GetNodes
    - BlockBuilder::AddOperation
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, AddsAdditionalLabelToOperationNodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterOperator
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:37,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:38,1
    - Dst: RegisterOperator
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:39,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:40,1
    - Dst: RegisterOperator
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:41,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: raksha::ir::dot::DotGeneratorTest::DotGeneratorTest
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - RegisterOperator
    - std::make_unique<Operator>
    linkageType: ''
    returnType: void
    signature: void DotGeneratorTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: '& pair_op() const'
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operator
    signature: Operator & pair_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: '& plus_op() const'
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operator
    signature: Operator & plus_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: '& minus_op() const'
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Operator
    signature: Operator & minus_op() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: '& global_module()'
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Module
    signature: Module & global_module()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::dot::GetDefault
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:53,1
    - Dst: DotGenerator::ModuleAsDot
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:55,1
    - Dst: LOG
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:56,1
    - Dst: absl::StrSplit
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:58,1
    - Dst: absl::SkipWhitespace
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:58,1
    - Dst: absl::c_for_each
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:59,1
    - Dst: absl::StripLeadingAsciiWhitespace
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:60,1
    - Dst: absl::c_for_each
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:62,1
    - Dst: absl::StripTrailingAsciiWhitespace
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: raksha::ir::dot::DotGeneratorTest::GetDotGraphAsWhitespaceTrimmedLines
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::dot::GetDefault
    - absl::StripTrailingAsciiWhitespace
    - DotGenerator::ModuleAsDot
    - LOG
    - absl::StrSplit
    - absl::StripLeadingAsciiWhitespace
    - absl::c_for_each
    - absl::SkipWhitespace
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> GetDotGraphAsWhitespaceTrimmedLines(\n      const
      Module& module,\n      DotGeneratorConfig config = DotGeneratorConfig::GetDefault())
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:70,1
    - Dst: absl::c_find
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:70,1
    - Dst: absl::c_find
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' dot_graph_lines'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: raksha::ir::dot::DotGeneratorTest::GetNodes
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_range
    - absl::c_find
    linkageType: ''
    returnType: utils::iterator_range<std::vector<std::string>::const_iterator>
    signature: "utils::iterator_range<std::vector<std::string>::const_iterator> GetNodes(\n
      \     const std::vector<std::string>& dot_graph_lines) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:76,1
    - Dst: absl::c_find
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:76,1
    - Dst: absl::c_find
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' dot_graph_lines'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: raksha::ir::dot::DotGeneratorTest::GetEdges
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_range
    - absl::c_find
    linkageType: ''
    returnType: utils::iterator_range<std::vector<std::string>::const_iterator>
    signature: "utils::iterator_range<std::vector<std::string>::const_iterator> GetEdges(\n
      \     const std::vector<std::string>& dot_graph_lines) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:95,1
    - Dst: BlockBuilder
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:95,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:96,1
    - Dst: BlockBuilder
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:96,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:98,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:98,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:99,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:99,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 102
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - global_module
    - testing::UnorderedElementsAre
    - GetDotGraphAsWhitespaceTrimmedLines
    - BlockBuilder
    - EXPECT_THAT
    - GetNodes
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, CreatesNodeForBlocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:112,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:113,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:113,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:114,1
    - Dst: minus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:114,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:115,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:115,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:117,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:117,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:118,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:119,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 125
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - global_module
    - testing::UnorderedElementsAre
    - minus_op
    - GetDotGraphAsWhitespaceTrimmedLines
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - EXPECT_THAT
    - BlockBuilder::build
    - plus_op
    - GetNodes
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, CreatesNodesForOperations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:134,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:135,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:136,1
    - Dst: Attribute::Create<StringAttribute>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:137,1
    - Dst: Attribute::Create<Int64Attribute>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:138,1
    - Dst: Attribute::Create<FloatAttribute>
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:139,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:141,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:141,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:143,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:143,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:144,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:145,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 149
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - NamedAttributeMap
    - global_module
    - testing::UnorderedElementsAre
    - GetDotGraphAsWhitespaceTrimmedLines
    - Attribute::Create<Int64Attribute>
    - EXPECT_THAT
    - BlockBuilder::build
    - Attribute::Create<FloatAttribute>
    - plus_op
    - Attribute::Create<StringAttribute>
    - GetNodes
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, CreatesAttributesInNodesForOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:152,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:160,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:160,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:161,1
    - Dst: minus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:161,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:162,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:162,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:164,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:164,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:165,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:166,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 171
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - global_module
    - testing::UnorderedElementsAre
    - minus_op
    - GetDotGraphAsWhitespaceTrimmedLines
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - EXPECT_THAT
    - BlockBuilder::build
    - plus_op
    - GetNodes
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, CreatesInputPortsInNodesForOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:174,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:183,1
    - Dst: pair_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:183,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:184,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:184,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:185,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:185,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:186,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:186,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:187,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:187,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:189,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:189,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:190,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:191,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 196
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - global_module
    - Value
    - testing::UnorderedElementsAre
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - GetDotGraphAsWhitespaceTrimmedLines
    - pair_op
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - EXPECT_THAT
    - BlockBuilder::build
    - plus_op
    - GetNodes
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, CreatesOutputPortsInNodesForOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:200,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:208,1
    - Dst: minus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:208,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:209,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:210,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:210,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:210,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:211,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:211,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:212,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:212,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:213,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:213,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:214,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:214,1
    - Dst: LOG
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:215,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:215,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:215,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:217,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:217,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:219,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:220,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:221,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:226,1
    - Dst: GetEdges
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:226,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 230
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - global_module
    - Value
    - GetEdges
    - testing::UnorderedElementsAre
    - minus_op
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - GetDotGraphAsWhitespaceTrimmedLines
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - EXPECT_THAT
    - BlockBuilder::build
    - LOG
    - plus_op
    - GetNodes
    - BlockBuilder::AddOperation
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, AddsEdgeFromOperationResultToInputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:238,1
    - Dst: op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:238,1
    - Dst: size
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:239,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:248,1
    - Dst: pair_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:248,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:249,1
    - Dst: plus_op
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:249,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:250,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:250,1
    - Dst: Value
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:251,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:251,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:252,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:252,1
    - Dst: GetDotGraphAsWhitespaceTrimmedLines
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:254,1
    - Dst: global_module
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:254,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:256,1
    - Dst: GetNodes
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:257,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/ir/dot/dot_generator_test.cc:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 262
    functionName: raksha::ir::dot::TEST_F
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_test.cc
    functionUses: 0
    functionsReached:
    - op
    - global_module
    - Value
    - testing::UnorderedElementsAre
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - GetDotGraphAsWhitespaceTrimmedLines
    - pair_op
    - EXPECT_THAT
    - BlockBuilder::build
    - plus_op
    - size
    - GetNodes
    - BlockBuilder::AddOperation
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: void TEST_F(DotGeneratorTest, AddsAdditionalLabelToOperationNodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: raksha::ir::dot::GetDefault
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_config.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: DotGeneratorConfig
    signature: DotGeneratorConfig GetDefault()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: raksha::ir::dot::GetDefault
    functionSourceFile: /src/raksha/src/ir/dot/dot_generator_config.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: DotGeneratorConfig
    signature: DotGeneratorConfig GetDefault()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:30,1
    - Dst: raksha::ir::datalog::Number::Number
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:30,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:32,1
    - Dst: raksha::ir::datalog::Number::Number
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:32,1
    - Dst: Number
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/attribute_test.cc
    functionUses: 0
    functionsReached:
    - Number
    - EXPECT_EQ
    - raksha::ir::datalog::Number::Number
    linkageType: ''
    returnType: void
    signature: void TEST(AttributeTest, NumberPayloadConstruction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:36,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::ToString
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:38,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::ToString
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:38,1
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::analysis::taint::AbstractIfcTags::ToString
    - Symbol
    linkageType: ''
    returnType: void
    signature: void TEST(AttributeTest, StringPayloadConstruction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:43,1
    - Dst: Attribute
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:44,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::ToString
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:46,1
    - Dst: Attribute
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:46,1
    - Dst: raksha::ir::datalog::Number::Number
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Attribute
    - raksha::analysis::taint::AbstractIfcTags::ToString
    - raksha::ir::datalog::Number::Number
    linkageType: ''
    returnType: void
    signature: void TEST(AttributeTest, AttributeConstructionTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:30,1
    - Dst: raksha::ir::datalog::Number::Number
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:30,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:32,1
    - Dst: raksha::ir::datalog::Number::Number
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:32,1
    - Dst: Number
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/attribute_test.cc
    functionUses: 0
    functionsReached:
    - Number
    - EXPECT_EQ
    - raksha::ir::datalog::Number::Number
    linkageType: ''
    returnType: void
    signature: void TEST(AttributeTest, NumberPayloadConstruction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:36,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::ToString
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:38,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::ToString
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:38,1
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::analysis::taint::AbstractIfcTags::ToString
    - Symbol
    linkageType: ''
    returnType: void
    signature: void TEST(AttributeTest, StringPayloadConstruction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:43,1
    - Dst: Attribute
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:44,1
    - Dst: raksha::analysis::taint::AbstractIfcTags::ToString
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:46,1
    - Dst: Attribute
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:46,1
    - Dst: raksha::ir::datalog::Number::Number
      Src: /src/raksha/src/ir/datalog/attribute_test.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/attribute_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Attribute
    - raksha::analysis::taint::AbstractIfcTags::ToString
    - raksha::ir::datalog::Number::Number
    linkageType: ''
    returnType: void
    signature: void TEST(AttributeTest, AttributeConstructionTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: raksha::ir::datalog::IsOperationFact::IsOperationFact
    functionSourceFile: /src/raksha/src/ir/datalog/operation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IsOperationFact(IsOperationFact &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: '&operator=(const IsOperationFact &)'
    functionSourceFile: /src/raksha/src/ir/datalog/operation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IsOperationFact
    signature: IsOperationFact &operator=(const IsOperationFact &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: raksha::ir::datalog::IsOperationFact::IsOperationFact
    functionSourceFile: /src/raksha/src/ir/datalog/operation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IsOperationFact(IsOperationFact &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: '&operator=(IsOperationFact &&)'
    functionSourceFile: /src/raksha/src/ir/datalog/operation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IsOperationFact
    signature: IsOperationFact &operator=(IsOperationFact &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: ~IsOperationFact()
    functionSourceFile: /src/raksha/src/ir/datalog/operation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~IsOperationFact()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: raksha::ir::datalog::IsOperationFact::relation_name
    functionSourceFile: /src/raksha/src/ir/datalog/operation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view relation_name()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::IsOperationFact::relation_name
      Src: /src/raksha/src/ir/datalog/operation.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: raksha::ir::datalog::IsOperationFact::GetRelationName
    functionSourceFile: /src/raksha/src/ir/datalog/operation.h
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::IsOperationFact::relation_name
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view GetRelationName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: raksha::ir::datalog::IsOperationFact::IsOperationFact
    functionSourceFile: /src/raksha/src/ir/datalog/operation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IsOperationFact(IsOperationFact &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: '&operator=(const IsOperationFact &)'
    functionSourceFile: /src/raksha/src/ir/datalog/operation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IsOperationFact
    signature: IsOperationFact &operator=(const IsOperationFact &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: raksha::ir::datalog::IsOperationFact::IsOperationFact
    functionSourceFile: /src/raksha/src/ir/datalog/operation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IsOperationFact(IsOperationFact &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: '&operator=(IsOperationFact &&)'
    functionSourceFile: /src/raksha/src/ir/datalog/operation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IsOperationFact
    signature: IsOperationFact &operator=(IsOperationFact &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: ~IsOperationFact()
    functionSourceFile: /src/raksha/src/ir/datalog/operation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~IsOperationFact()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: raksha::ir::datalog::IsOperationFact::relation_name
    functionSourceFile: /src/raksha/src/ir/datalog/operation.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view relation_name()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::IsOperationFact::relation_name
      Src: /src/raksha/src/ir/datalog/operation.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: raksha::ir::datalog::IsOperationFact::GetRelationName
    functionSourceFile: /src/raksha/src/ir/datalog/operation.h
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::IsOperationFact::relation_name
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view GetRelationName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:41,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:42,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - name
    - args
    - sign
    argTypes:
    - std::string
    - std::vector<std::string>
    - Sign
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: raksha::ir::datalog::Predicate::Predicate
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Predicate(std::string name, std::vector<std::string> args, Sign
      sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: '& name() const'
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: '& args() const'
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & args() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: raksha::ir::datalog::Predicate::sign
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Sign
    signature: Sign sign() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/datalog/program.h:53,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:53,1
    - Dst: name
      Src: /src/raksha/src/ir/datalog/program.h:53,1
    - Dst: args
      Src: /src/raksha/src/ir/datalog/program.h:53,1
    - Dst: raksha::ir::datalog::Predicate::sign
      Src: /src/raksha/src/ir/datalog/program.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' p'
    argTypes:
    - H
    - Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: raksha::ir::datalog::Predicate::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - args
    - name
    - std::move
    - H::combine
    - raksha::ir::datalog::Predicate::sign
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const Predicate& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::name
      Src: /src/raksha/src/ir/datalog/program.h:57,1
    - Dst: name
      Src: /src/raksha/src/ir/datalog/program.h:57,1
    - Dst: raksha::ir::datalog::sign
      Src: /src/raksha/src/ir/datalog/program.h:58,1
    - Dst: sign
      Src: /src/raksha/src/ir/datalog/program.h:58,1
    - Dst: raksha::ir::datalog::args
      Src: /src/raksha/src/ir/datalog/program.h:59,1
    - Dst: args
      Src: /src/raksha/src/ir/datalog/program.h:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' otherPredicate'
    argTypes:
    - Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: operator==(const Predicate& otherPredicate) const
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - args
    - raksha::ir::datalog::sign
    - raksha::ir::datalog::name
    - name
    - raksha::ir::datalog::args
    - sign
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Predicate& otherPredicate) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::name
      Src: /src/raksha/src/ir/datalog/program.h:67,1
    - Dst: name
      Src: /src/raksha/src/ir/datalog/program.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' otherPredicate'
    argTypes:
    - Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: operator<(const Predicate& otherPredicate) const
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::name
    - name
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Predicate& otherPredicate) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::flat_hash_set<std::string>::string>
      Src: /src/raksha/src/ir/datalog/program.h:80,1
    - Dst: auto*::contains
      Src: /src/raksha/src/ir/datalog/program.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: raksha::ir::datalog::Predicate::IsNumericOperator
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - absl::flat_hash_set<std::string>::string>
    - auto*::contains
    linkageType: ''
    returnType: bool
    signature: bool IsNumericOperator() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: raksha::ir::datalog::ArgumentType::kind
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Kind
    signature: Kind kind() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: raksha::ir::datalog::ArgumentType::name
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::ArgumentType::ArgumentType
      Src: /src/raksha/src/ir/datalog/program.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: raksha::ir::datalog::ArgumentType::MakePrincipalType
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::ArgumentType
    linkageType: ''
    returnType: ArgumentType
    signature: ArgumentType MakePrincipalType()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::ArgumentType::ArgumentType
      Src: /src/raksha/src/ir/datalog/program.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: raksha::ir::datalog::ArgumentType::MakeNumberType
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::ArgumentType
    linkageType: ''
    returnType: ArgumentType
    signature: ArgumentType MakeNumberType()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::ArgumentType::ArgumentType
      Src: /src/raksha/src/ir/datalog/program.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: raksha::ir::datalog::ArgumentType::MakeCustomType
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::ArgumentType
    linkageType: ''
    returnType: ArgumentType
    signature: ArgumentType MakeCustomType(absl::string_view name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/datalog/program.h:117,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' typ'
    argTypes:
    - H
    - ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: raksha::ir::datalog::ArgumentType::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - H::combine
    - std::move
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const ArgumentType& typ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' otherType'
    argTypes:
    - ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: operator==(const ArgumentType& otherType) const
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const ArgumentType& otherType) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' otherType'
    argTypes:
    - ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: operator!=(const ArgumentType& otherType) const
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const ArgumentType& otherType) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - kind
    - name
    argTypes:
    - Kind
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: raksha::ir::datalog::ArgumentType::ArgumentType
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ArgumentType(Kind kind, absl::string_view name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - argument_name
    - argument_type
    argTypes:
    - std::string_view
    - ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: raksha::ir::datalog::Argument::Argument
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Argument(std::string_view argument_name, ArgumentType argument_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: raksha::ir::datalog::Argument::argument_name
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view argument_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: raksha::ir::datalog::Argument::argument_type
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ArgumentType
    signature: ArgumentType argument_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' otherArgument'
    argTypes:
    - Argument
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: operator==(const Argument& otherArgument) const
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Argument& otherArgument) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/datalog/program.h:154,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:154,1
    - Dst: raksha::ir::datalog::Argument::argument_name
      Src: /src/raksha/src/ir/datalog/program.h:154,1
    - Dst: raksha::ir::datalog::Argument::argument_type
      Src: /src/raksha/src/ir/datalog/program.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' arg'
    argTypes:
    - H
    - Argument
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: raksha::ir::datalog::Argument::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::Argument::argument_type
    - H::combine
    - std::move
    - raksha::ir::datalog::Argument::argument_name
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const Argument& arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - relation_name
    - is_attribute
    - arguments
    argTypes:
    - absl::string_view
    - bool
    - std::vector<Argument>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void RelationDeclaration(absl::string_view relation_name,\n                               bool
      is_attribute,\n                               std::vector<Argument> arguments)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: raksha::ir::datalog::RelationDeclaration::relation_name
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view relation_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 171
    functionName: raksha::ir::datalog::RelationDeclaration::is_attribute
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_attribute() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: '& arguments() const'
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Argument>
    signature: std::vector<Argument> & arguments() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' otherDeclaration'
    argTypes:
    - RelationDeclaration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: operator==(const RelationDeclaration& otherDeclaration) const
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const RelationDeclaration& otherDeclaration) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/datalog/program.h:185,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:185,1
    - Dst: raksha::ir::datalog::RelationDeclaration::relation_name
      Src: /src/raksha/src/ir/datalog/program.h:185,1
    - Dst: raksha::ir::datalog::RelationDeclaration::is_attribute
      Src: /src/raksha/src/ir/datalog/program.h:185,1
    - Dst: arguments
      Src: /src/raksha/src/ir/datalog/program.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' rd'
    argTypes:
    - H
    - RelationDeclaration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: raksha::ir::datalog::RelationDeclaration::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::RelationDeclaration::is_attribute
    - arguments
    - raksha::ir::datalog::RelationDeclaration::relation_name
    - std::move
    - H::combine
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const RelationDeclaration& rd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:202,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - Predicate
    - std::vector<Predicate>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: raksha::ir::datalog::Rule::Rule
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Rule(Predicate lhs, std::vector<Predicate> rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - lhs
    argTypes:
    - Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: raksha::ir::datalog::Rule::Rule
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Rule(Predicate lhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: '& lhs() const'
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Predicate
    signature: Predicate & lhs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: '& rhs() const'
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Predicate>
    signature: std::vector<Predicate> & rhs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' otherRule'
    argTypes:
    - Rule
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: operator==(const Rule& otherRule) const
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Rule& otherRule) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:220,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:221,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - relation_declarations
    - rules
    - outputs
    argTypes:
    - std::vector<RelationDeclaration>
    - std::vector<Rule>
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: raksha::ir::datalog::Program::Program
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Program(std::vector<RelationDeclaration> relation_declarations,\n
      \         std::vector<Rule> rules, std::vector<std::string> outputs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 225
    functionName: '& relation_declarations() const'
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<RelationDeclaration>
    signature: std::vector<RelationDeclaration> & relation_declarations() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: '& rules() const'
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Rule>
    signature: std::vector<Rule> & rules() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 227
    functionName: '& outputs() const'
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & outputs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' otherProgram'
    argTypes:
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: operator==(const Program& otherProgram) const
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Program& otherProgram) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:41,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:42,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - name
    - args
    - sign
    argTypes:
    - std::string
    - std::vector<std::string>
    - Sign
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: raksha::ir::datalog::Predicate::Predicate
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Predicate(std::string name, std::vector<std::string> args, Sign
      sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: '& name() const'
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: '& args() const'
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & args() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: raksha::ir::datalog::Predicate::sign
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Sign
    signature: Sign sign() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/datalog/program.h:53,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:53,1
    - Dst: name
      Src: /src/raksha/src/ir/datalog/program.h:53,1
    - Dst: args
      Src: /src/raksha/src/ir/datalog/program.h:53,1
    - Dst: raksha::ir::datalog::Predicate::sign
      Src: /src/raksha/src/ir/datalog/program.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' p'
    argTypes:
    - H
    - Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: raksha::ir::datalog::Predicate::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - args
    - name
    - std::move
    - H::combine
    - raksha::ir::datalog::Predicate::sign
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const Predicate& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/raksha/src/ir/datalog/program.h:57,1
    - Dst: name
      Src: /src/raksha/src/ir/datalog/program.h:57,1
    - Dst: sign
      Src: /src/raksha/src/ir/datalog/program.h:58,1
    - Dst: sign
      Src: /src/raksha/src/ir/datalog/program.h:58,1
    - Dst: args
      Src: /src/raksha/src/ir/datalog/program.h:59,1
    - Dst: args
      Src: /src/raksha/src/ir/datalog/program.h:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' otherPredicate'
    argTypes:
    - Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: operator==(const Predicate& otherPredicate) const
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - name
    - sign
    - args
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Predicate& otherPredicate) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/raksha/src/ir/datalog/program.h:67,1
    - Dst: name
      Src: /src/raksha/src/ir/datalog/program.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' otherPredicate'
    argTypes:
    - Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: operator<(const Predicate& otherPredicate) const
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Predicate& otherPredicate) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::flat_hash_set<std::string>::string>
      Src: /src/raksha/src/ir/datalog/program.h:80,1
    - Dst: auto*::contains
      Src: /src/raksha/src/ir/datalog/program.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: raksha::ir::datalog::Predicate::IsNumericOperator
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - absl::flat_hash_set<std::string>::string>
    - auto*::contains
    linkageType: ''
    returnType: bool
    signature: bool IsNumericOperator() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: raksha::ir::datalog::ArgumentType::kind
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Kind
    signature: Kind kind() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: raksha::ir::datalog::ArgumentType::name
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::ArgumentType::ArgumentType
      Src: /src/raksha/src/ir/datalog/program.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: raksha::ir::datalog::ArgumentType::MakePrincipalType
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::ArgumentType
    linkageType: ''
    returnType: ArgumentType
    signature: ArgumentType MakePrincipalType()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::ArgumentType::ArgumentType
      Src: /src/raksha/src/ir/datalog/program.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: raksha::ir::datalog::ArgumentType::MakeNumberType
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::ArgumentType
    linkageType: ''
    returnType: ArgumentType
    signature: ArgumentType MakeNumberType()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::ArgumentType::ArgumentType
      Src: /src/raksha/src/ir/datalog/program.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: raksha::ir::datalog::ArgumentType::MakeCustomType
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::ArgumentType
    linkageType: ''
    returnType: ArgumentType
    signature: ArgumentType MakeCustomType(absl::string_view name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/datalog/program.h:117,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' typ'
    argTypes:
    - H
    - ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: raksha::ir::datalog::ArgumentType::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - H::combine
    - std::move
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const ArgumentType& typ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' otherType'
    argTypes:
    - ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: operator==(const ArgumentType& otherType) const
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const ArgumentType& otherType) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' otherType'
    argTypes:
    - ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: operator!=(const ArgumentType& otherType) const
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const ArgumentType& otherType) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - kind
    - name
    argTypes:
    - Kind
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: raksha::ir::datalog::ArgumentType::ArgumentType
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ArgumentType(Kind kind, absl::string_view name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - argument_name
    - argument_type
    argTypes:
    - std::string_view
    - ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: raksha::ir::datalog::Argument::Argument
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Argument(std::string_view argument_name, ArgumentType argument_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: raksha::ir::datalog::Argument::argument_name
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view argument_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: raksha::ir::datalog::Argument::argument_type
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ArgumentType
    signature: ArgumentType argument_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' otherArgument'
    argTypes:
    - Argument
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: operator==(const Argument& otherArgument) const
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Argument& otherArgument) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/datalog/program.h:154,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:154,1
    - Dst: raksha::ir::datalog::Argument::argument_name
      Src: /src/raksha/src/ir/datalog/program.h:154,1
    - Dst: raksha::ir::datalog::Argument::argument_type
      Src: /src/raksha/src/ir/datalog/program.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' arg'
    argTypes:
    - H
    - Argument
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: raksha::ir::datalog::Argument::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::Argument::argument_type
    - H::combine
    - std::move
    - raksha::ir::datalog::Argument::argument_name
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const Argument& arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - relation_name
    - is_attribute
    - arguments
    argTypes:
    - absl::string_view
    - bool
    - std::vector<Argument>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void RelationDeclaration(absl::string_view relation_name,\n                               bool
      is_attribute,\n                               std::vector<Argument> arguments)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: raksha::ir::datalog::RelationDeclaration::relation_name
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view relation_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 171
    functionName: raksha::ir::datalog::RelationDeclaration::is_attribute
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_attribute() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: '& arguments() const'
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Argument>
    signature: std::vector<Argument> & arguments() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' otherDeclaration'
    argTypes:
    - RelationDeclaration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: operator==(const RelationDeclaration& otherDeclaration) const
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const RelationDeclaration& otherDeclaration) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H::combine
      Src: /src/raksha/src/ir/datalog/program.h:185,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:185,1
    - Dst: raksha::ir::datalog::RelationDeclaration::relation_name
      Src: /src/raksha/src/ir/datalog/program.h:185,1
    - Dst: raksha::ir::datalog::RelationDeclaration::is_attribute
      Src: /src/raksha/src/ir/datalog/program.h:185,1
    - Dst: arguments
      Src: /src/raksha/src/ir/datalog/program.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - ' rd'
    argTypes:
    - H
    - RelationDeclaration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: raksha::ir::datalog::RelationDeclaration::AbslHashValue
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::RelationDeclaration::is_attribute
    - arguments
    - raksha::ir::datalog::RelationDeclaration::relation_name
    - std::move
    - H::combine
    linkageType: ''
    returnType: H
    signature: H AbslHashValue(H h, const RelationDeclaration& rd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:202,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - Predicate
    - std::vector<Predicate>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: raksha::ir::datalog::Rule::Rule
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Rule(Predicate lhs, std::vector<Predicate> rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - lhs
    argTypes:
    - Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: raksha::ir::datalog::Rule::Rule
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Rule(Predicate lhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: '& lhs() const'
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Predicate
    signature: Predicate & lhs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: '& rhs() const'
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Predicate>
    signature: std::vector<Predicate> & rhs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' otherRule'
    argTypes:
    - Rule
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: operator==(const Rule& otherRule) const
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Rule& otherRule) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:220,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:221,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/program.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - relation_declarations
    - rules
    - outputs
    argTypes:
    - std::vector<RelationDeclaration>
    - std::vector<Rule>
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: raksha::ir::datalog::Program::Program
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Program(std::vector<RelationDeclaration> relation_declarations,\n
      \         std::vector<Rule> rules, std::vector<std::string> outputs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 225
    functionName: '& relation_declarations() const'
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<RelationDeclaration>
    signature: std::vector<RelationDeclaration> & relation_declarations() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: '& rules() const'
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Rule>
    signature: std::vector<Rule> & rules() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 227
    functionName: '& outputs() const'
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & outputs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' otherProgram'
    argTypes:
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: operator==(const Program& otherProgram) const
    functionSourceFile: /src/raksha/src/ir/datalog/program.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Program& otherProgram) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: ~Value()
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Value()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: raksha::ir::datalog::Float::Float
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Float(double value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/datalog/value.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: raksha::ir::datalog::Float::ToDatalogString
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string ToDatalogString() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: raksha::ir::datalog::Number::Number
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Number(int64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/raksha/src/ir/datalog/value.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: raksha::ir::datalog::Number::ToDatalogString
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 0
    functionsReached:
    - std::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string ToDatalogString() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: raksha::ir::datalog::Symbol::Symbol
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Symbol(absl::string_view value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/datalog/value.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: raksha::ir::datalog::Symbol::ToDatalogString
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string ToDatalogString() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: raksha::ir::datalog::Record::Record
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Record()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<std::tuple<RecordFieldValueTypes...>>
      Src: /src/raksha/src/ir/datalog/value.h:90,1
    - Dst: std::forward<RecordFieldValueTypes>
      Src: /src/raksha/src/ir/datalog/value.h:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: raksha::ir::datalog::Record::Record
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 0
    functionsReached:
    - std::make_unique<std::tuple<RecordFieldValueTypes...>>
    - std::forward<RecordFieldValueTypes>
    linkageType: ''
    returnType: void
    signature: void Record(RecordFieldValueTypes &&...args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/datalog/value.h:95,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/datalog/value.h:96,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/datalog/value.h:98,1
    - Dst: raksha::ir::datalog::Record::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value.h:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: raksha::ir::datalog::Record::ToDatalogString
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 1
    functionsReached:
    - raksha::ir::datalog::Record::ToDatalogString
    - absl::StrAppend
    - absl::StrJoin
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string ToDatalogString() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - branch_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: raksha::ir::datalog::Adt::Adt
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Adt(absl::string_view branch_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/datalog/value.h:111,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/datalog/value.h:113,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/datalog/value.h:114,1
    - Dst: raksha::ir::datalog::Adt::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: raksha::ir::datalog::Adt::ToDatalogString
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 1
    functionsReached:
    - raksha::ir::datalog::Adt::ToDatalogString
    - absl::StrAppend
    - absl::StrJoin
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string ToDatalogString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: ~Value()
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Value()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: raksha::ir::datalog::Float::Float
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Float(double value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/datalog/value.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: raksha::ir::datalog::Float::ToDatalogString
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string ToDatalogString() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: raksha::ir::datalog::Number::Number
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Number(int64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/raksha/src/ir/datalog/value.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: raksha::ir::datalog::Number::ToDatalogString
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 0
    functionsReached:
    - std::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string ToDatalogString() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: raksha::ir::datalog::Symbol::Symbol
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Symbol(absl::string_view value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/datalog/value.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: raksha::ir::datalog::Symbol::ToDatalogString
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string ToDatalogString() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: raksha::ir::datalog::Record::Record
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Record()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<std::tuple<RecordFieldValueTypes...>>
      Src: /src/raksha/src/ir/datalog/value.h:90,1
    - Dst: std::forward<RecordFieldValueTypes>
      Src: /src/raksha/src/ir/datalog/value.h:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: raksha::ir::datalog::Record::Record
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 0
    functionsReached:
    - std::make_unique<std::tuple<RecordFieldValueTypes...>>
    - std::forward<RecordFieldValueTypes>
    linkageType: ''
    returnType: void
    signature: void Record(RecordFieldValueTypes &&...args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/datalog/value.h:95,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/datalog/value.h:96,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/datalog/value.h:98,1
    - Dst: raksha::ir::datalog::Record::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value.h:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: raksha::ir::datalog::Record::ToDatalogString
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 2
    functionsReached:
    - raksha::ir::datalog::Record::ToDatalogString
    - absl::StrAppend
    - absl::StrJoin
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string ToDatalogString() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - branch_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: raksha::ir::datalog::Adt::Adt
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Adt(absl::string_view branch_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/datalog/value.h:111,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/datalog/value.h:113,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/datalog/value.h:114,1
    - Dst: raksha::ir::datalog::Adt::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: raksha::ir::datalog::Adt::ToDatalogString
    functionSourceFile: /src/raksha/src/ir/datalog/value.h
    functionUses: 2
    functionsReached:
    - raksha::ir::datalog::Adt::ToDatalogString
    - absl::StrAppend
    - absl::StrJoin
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string ToDatalogString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:37,1
    - Dst: Float
      Src: /src/raksha/src/ir/datalog/value_test.cc:38,1
    - Dst: Float::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:39,1
    - Dst: absl::SimpleAtod
      Src: /src/raksha/src/ir/datalog/value_test.cc:41,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/datalog/value_test.cc:42,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - absl::SimpleAtod
    - Float
    - ASSERT_TRUE
    - ASSERT_EQ
    - GetParam
    - Float::ToDatalogString
    linkageType: ''
    returnType: void
    signature: void TEST_P(FloatTest, FloatTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Number
      Src: /src/raksha/src/ir/datalog/value_test.cc:64,1
    - Dst: Number::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:65,1
    - Dst: absl::SimpleAtoi
      Src: /src/raksha/src/ir/datalog/value_test.cc:67,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/datalog/value_test.cc:68,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - num
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: raksha::ir::datalog::RoundTripNumberThroughDatalogString
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - Number
    - ASSERT_TRUE
    - ASSERT_EQ
    - Number::ToDatalogString
    - absl::SimpleAtoi
    linkageType: ''
    returnType: void
    signature: void RoundTripNumberThroughDatalogString(int64_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/value_test.cc:80,1
    - Dst: Symbol::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:81,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:82,1
    - Dst: std::string
      Src: /src/raksha/src/ir/datalog/value_test.cc:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - symbol
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: raksha::ir::datalog::RoundTripStringThroughDatalogString
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - Symbol::ToDatalogString
    - ASSERT_EQ
    - Symbol
    linkageType: ''
    returnType: void
    signature: void RoundTripStringThroughDatalogString(absl::string_view symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:92,1
    - Dst: Record<SimpleRecord>
      Src: /src/raksha/src/ir/datalog/value_test.cc:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - Record<SimpleRecord>
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(SimpleRecordNilTest, SimpleRecordNilTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SimpleRecord
      Src: /src/raksha/src/ir/datalog/value_test.cc:100,1
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/value_test.cc:100,1
    - Dst: Number
      Src: /src/raksha/src/ir/datalog/value_test.cc:100,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:101,1
    - Dst: SimpleRecord::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:101,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/datalog/value_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - symbol
    - number
    argTypes:
    - absl::string_view
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: raksha::ir::datalog::PerformSimpleRecordTest
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - SimpleRecord
    - SimpleRecord::ToDatalogString
    - absl::StrFormat
    - ASSERT_EQ
    - Symbol
    - Number
    linkageType: ''
    returnType: void
    signature: void PerformSimpleRecordTest(absl::string_view symbol, int64_t number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::PerformSimpleRecordTest
      Src: /src/raksha/src/ir/datalog/value_test.cc:106,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:106,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:106,1
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:106,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:107,1
    - Dst: std::get<1>
      Src: /src/raksha/src/ir/datalog/value_test.cc:107,1
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::PerformSimpleRecordTest
    - std::get<1>
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(SimpleRecordTest, SimpleRecordTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:131,1
    - Dst: ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - ToDatalogString
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(NumListTest, NumListTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NumberSymbolPair
      Src: /src/raksha/src/ir/datalog/value_test.cc:159,1
    - Dst: Number
      Src: /src/raksha/src/ir/datalog/value_test.cc:159,1
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/value_test.cc:159,1
    - Dst: NumberSymbolPair
      Src: /src/raksha/src/ir/datalog/value_test.cc:161,1
    - Dst: Number
      Src: /src/raksha/src/ir/datalog/value_test.cc:161,1
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/value_test.cc:161,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:164,1
    - Dst: NumberSymbolPairPair::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:164,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/datalog/value_test.cc:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - number1
    - symbol1
    - number2
    - symbol2
    argTypes:
    - int64_t
    - absl::string_view
    - int64_t
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 167
    functionName: raksha::ir::datalog::CheckNumberSymbolPairPair
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - NumberSymbolPair
    - NumberSymbolPairPair::ToDatalogString
    - absl::StrFormat
    - Symbol
    - Number
    linkageType: ''
    returnType: void
    signature: "void CheckNumberSymbolPairPair(int64_t number1, absl::string_view
      symbol1,\n                               int64_t number2, absl::string_view
      symbol2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:170,1
    - Dst: raksha::ir::datalog::CheckNumberSymbolPairPair
      Src: /src/raksha/src/ir/datalog/value_test.cc:171,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:171,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:171,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:172,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::CheckNumberSymbolPairPair
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(NumberSymbolPairPairTest, NumberSymbolPairPairTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: raksha::ir::datalog::NullBranch::NullBranch
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NullBranch()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/datalog/value_test.cc:201,1
    - Dst: std::make_unique<Number>
      Src: /src/raksha/src/ir/datalog/value_test.cc:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - number
    argTypes:
    - Number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 202
    functionName: raksha::ir::datalog::NumberBranch::NumberBranch
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<Number>
    - push_back
    linkageType: ''
    returnType: void
    signature: void NumberBranch(Number number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/datalog/value_test.cc:209,1
    - Dst: std::make_unique<ArithmeticAdt>
      Src: /src/raksha/src/ir/datalog/value_test.cc:209,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/value_test.cc:209,1
    - Dst: push_back
      Src: /src/raksha/src/ir/datalog/value_test.cc:210,1
    - Dst: std::make_unique<ArithmeticAdt>
      Src: /src/raksha/src/ir/datalog/value_test.cc:210,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/value_test.cc:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - ArithmeticAdt
    - ArithmeticAdt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: raksha::ir::datalog::AddBranch::AddBranch
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<ArithmeticAdt>
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: void AddBranch(ArithmeticAdt lhs, ArithmeticAdt rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:222,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:223,1
    - Dst: ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - ToDatalogString
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AdtTest, AdtTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:37,1
    - Dst: Float
      Src: /src/raksha/src/ir/datalog/value_test.cc:38,1
    - Dst: Float::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:39,1
    - Dst: absl::SimpleAtod
      Src: /src/raksha/src/ir/datalog/value_test.cc:41,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/datalog/value_test.cc:42,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - absl::SimpleAtod
    - Float
    - ASSERT_TRUE
    - ASSERT_EQ
    - GetParam
    - Float::ToDatalogString
    linkageType: ''
    returnType: void
    signature: void TEST_P(FloatTest, FloatTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Number
      Src: /src/raksha/src/ir/datalog/value_test.cc:64,1
    - Dst: Number::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:65,1
    - Dst: absl::SimpleAtoi
      Src: /src/raksha/src/ir/datalog/value_test.cc:67,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/datalog/value_test.cc:68,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - num
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: raksha::ir::datalog::RoundTripNumberThroughDatalogString
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - Number
    - ASSERT_TRUE
    - ASSERT_EQ
    - Number::ToDatalogString
    - absl::SimpleAtoi
    linkageType: ''
    returnType: void
    signature: void RoundTripNumberThroughDatalogString(int64_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/value_test.cc:80,1
    - Dst: Symbol::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:81,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:82,1
    - Dst: std::string
      Src: /src/raksha/src/ir/datalog/value_test.cc:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - symbol
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: raksha::ir::datalog::RoundTripStringThroughDatalogString
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - Symbol::ToDatalogString
    - ASSERT_EQ
    - Symbol
    linkageType: ''
    returnType: void
    signature: void RoundTripStringThroughDatalogString(absl::string_view symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:92,1
    - Dst: Record<SimpleRecord>
      Src: /src/raksha/src/ir/datalog/value_test.cc:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - Record<SimpleRecord>
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(SimpleRecordNilTest, SimpleRecordNilTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SimpleRecord
      Src: /src/raksha/src/ir/datalog/value_test.cc:100,1
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/value_test.cc:100,1
    - Dst: Number
      Src: /src/raksha/src/ir/datalog/value_test.cc:100,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:101,1
    - Dst: SimpleRecord::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:101,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/datalog/value_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - symbol
    - number
    argTypes:
    - absl::string_view
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: raksha::ir::datalog::PerformSimpleRecordTest
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 1
    functionsReached:
    - SimpleRecord
    - SimpleRecord::ToDatalogString
    - absl::StrFormat
    - ASSERT_EQ
    - Symbol
    - Number
    linkageType: ''
    returnType: void
    signature: void PerformSimpleRecordTest(absl::string_view symbol, int64_t number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::PerformSimpleRecordTest
      Src: /src/raksha/src/ir/datalog/value_test.cc:106,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:106,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:106,1
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:106,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:107,1
    - Dst: std::get<1>
      Src: /src/raksha/src/ir/datalog/value_test.cc:107,1
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::PerformSimpleRecordTest
    - std::get<1>
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(SimpleRecordTest, SimpleRecordTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:131,1
    - Dst: ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - ToDatalogString
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(NumListTest, NumListTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NumberSymbolPair
      Src: /src/raksha/src/ir/datalog/value_test.cc:159,1
    - Dst: Number
      Src: /src/raksha/src/ir/datalog/value_test.cc:159,1
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/value_test.cc:159,1
    - Dst: NumberSymbolPair
      Src: /src/raksha/src/ir/datalog/value_test.cc:161,1
    - Dst: Number
      Src: /src/raksha/src/ir/datalog/value_test.cc:161,1
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/value_test.cc:161,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:164,1
    - Dst: NumberSymbolPairPair::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:164,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/datalog/value_test.cc:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - number1
    - symbol1
    - number2
    - symbol2
    argTypes:
    - int64_t
    - absl::string_view
    - int64_t
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 167
    functionName: raksha::ir::datalog::CheckNumberSymbolPairPair
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 1
    functionsReached:
    - EXPECT_EQ
    - NumberSymbolPair
    - NumberSymbolPairPair::ToDatalogString
    - absl::StrFormat
    - Symbol
    - Number
    linkageType: ''
    returnType: void
    signature: "void CheckNumberSymbolPairPair(int64_t number1, absl::string_view
      symbol1,\n                               int64_t number2, absl::string_view
      symbol2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:170,1
    - Dst: raksha::ir::datalog::CheckNumberSymbolPairPair
      Src: /src/raksha/src/ir/datalog/value_test.cc:171,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:171,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:171,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:172,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::CheckNumberSymbolPairPair
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(NumberSymbolPairPairTest, NumberSymbolPairPairTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: raksha::ir::datalog::NullBranch::NullBranch
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NullBranch()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/datalog/value_test.cc:201,1
    - Dst: std::make_unique<Number>
      Src: /src/raksha/src/ir/datalog/value_test.cc:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - number
    argTypes:
    - Number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 202
    functionName: raksha::ir::datalog::NumberBranch::NumberBranch
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<Number>
    - push_back
    linkageType: ''
    returnType: void
    signature: void NumberBranch(Number number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/datalog/value_test.cc:209,1
    - Dst: std::make_unique<ArithmeticAdt>
      Src: /src/raksha/src/ir/datalog/value_test.cc:209,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/value_test.cc:209,1
    - Dst: push_back
      Src: /src/raksha/src/ir/datalog/value_test.cc:210,1
    - Dst: std::make_unique<ArithmeticAdt>
      Src: /src/raksha/src/ir/datalog/value_test.cc:210,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/value_test.cc:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - ArithmeticAdt
    - ArithmeticAdt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: raksha::ir::datalog::AddBranch::AddBranch
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<ArithmeticAdt>
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: void AddBranch(ArithmeticAdt lhs, ArithmeticAdt rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:222,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:223,1
    - Dst: ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - ToDatalogString
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AdtTest, AdtTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:37,1
    - Dst: Float
      Src: /src/raksha/src/ir/datalog/value_test.cc:38,1
    - Dst: Float::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:39,1
    - Dst: absl::SimpleAtod
      Src: /src/raksha/src/ir/datalog/value_test.cc:41,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/datalog/value_test.cc:42,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - absl::SimpleAtod
    - Float
    - ASSERT_TRUE
    - ASSERT_EQ
    - GetParam
    - Float::ToDatalogString
    linkageType: ''
    returnType: void
    signature: void TEST_P(FloatTest, FloatTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Number
      Src: /src/raksha/src/ir/datalog/value_test.cc:64,1
    - Dst: Number::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:65,1
    - Dst: absl::SimpleAtoi
      Src: /src/raksha/src/ir/datalog/value_test.cc:67,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/datalog/value_test.cc:68,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - num
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: raksha::ir::datalog::RoundTripNumberThroughDatalogString
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - Number
    - ASSERT_TRUE
    - ASSERT_EQ
    - Number::ToDatalogString
    - absl::SimpleAtoi
    linkageType: ''
    returnType: void
    signature: void RoundTripNumberThroughDatalogString(int64_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/value_test.cc:80,1
    - Dst: Symbol::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:81,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:82,1
    - Dst: std::string
      Src: /src/raksha/src/ir/datalog/value_test.cc:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - symbol
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: raksha::ir::datalog::RoundTripStringThroughDatalogString
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - Symbol::ToDatalogString
    - ASSERT_EQ
    - Symbol
    linkageType: ''
    returnType: void
    signature: void RoundTripStringThroughDatalogString(absl::string_view symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:92,1
    - Dst: Record<SimpleRecord>
      Src: /src/raksha/src/ir/datalog/value_test.cc:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - Record<SimpleRecord>
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(SimpleRecordNilTest, SimpleRecordNilTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SimpleRecord
      Src: /src/raksha/src/ir/datalog/value_test.cc:100,1
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/value_test.cc:100,1
    - Dst: Number
      Src: /src/raksha/src/ir/datalog/value_test.cc:100,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:101,1
    - Dst: SimpleRecord::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:101,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/datalog/value_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - symbol
    - number
    argTypes:
    - absl::string_view
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: raksha::ir::datalog::PerformSimpleRecordTest
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 2
    functionsReached:
    - SimpleRecord
    - SimpleRecord::ToDatalogString
    - absl::StrFormat
    - ASSERT_EQ
    - Symbol
    - Number
    linkageType: ''
    returnType: void
    signature: void PerformSimpleRecordTest(absl::string_view symbol, int64_t number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::PerformSimpleRecordTest
      Src: /src/raksha/src/ir/datalog/value_test.cc:106,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:106,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:106,1
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:106,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:107,1
    - Dst: std::get<1>
      Src: /src/raksha/src/ir/datalog/value_test.cc:107,1
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::PerformSimpleRecordTest
    - std::get<1>
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(SimpleRecordTest, SimpleRecordTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:131,1
    - Dst: ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - ToDatalogString
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(NumListTest, NumListTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NumberSymbolPair
      Src: /src/raksha/src/ir/datalog/value_test.cc:159,1
    - Dst: Number
      Src: /src/raksha/src/ir/datalog/value_test.cc:159,1
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/value_test.cc:159,1
    - Dst: NumberSymbolPair
      Src: /src/raksha/src/ir/datalog/value_test.cc:161,1
    - Dst: Number
      Src: /src/raksha/src/ir/datalog/value_test.cc:161,1
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/value_test.cc:161,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:164,1
    - Dst: NumberSymbolPairPair::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:164,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/datalog/value_test.cc:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - number1
    - symbol1
    - number2
    - symbol2
    argTypes:
    - int64_t
    - absl::string_view
    - int64_t
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 167
    functionName: raksha::ir::datalog::CheckNumberSymbolPairPair
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 2
    functionsReached:
    - EXPECT_EQ
    - NumberSymbolPair
    - NumberSymbolPairPair::ToDatalogString
    - absl::StrFormat
    - Symbol
    - Number
    linkageType: ''
    returnType: void
    signature: "void CheckNumberSymbolPairPair(int64_t number1, absl::string_view
      symbol1,\n                               int64_t number2, absl::string_view
      symbol2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:170,1
    - Dst: raksha::ir::datalog::CheckNumberSymbolPairPair
      Src: /src/raksha/src/ir/datalog/value_test.cc:171,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:171,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:171,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:172,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::CheckNumberSymbolPairPair
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(NumberSymbolPairPairTest, NumberSymbolPairPairTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: raksha::ir::datalog::NullBranch::NullBranch
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NullBranch()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/datalog/value_test.cc:201,1
    - Dst: std::make_unique<Number>
      Src: /src/raksha/src/ir/datalog/value_test.cc:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - number
    argTypes:
    - Number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 202
    functionName: raksha::ir::datalog::NumberBranch::NumberBranch
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<Number>
    - push_back
    linkageType: ''
    returnType: void
    signature: void NumberBranch(Number number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/datalog/value_test.cc:209,1
    - Dst: std::make_unique<ArithmeticAdt>
      Src: /src/raksha/src/ir/datalog/value_test.cc:209,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/value_test.cc:209,1
    - Dst: push_back
      Src: /src/raksha/src/ir/datalog/value_test.cc:210,1
    - Dst: std::make_unique<ArithmeticAdt>
      Src: /src/raksha/src/ir/datalog/value_test.cc:210,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/value_test.cc:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - ArithmeticAdt
    - ArithmeticAdt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: raksha::ir::datalog::AddBranch::AddBranch
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<ArithmeticAdt>
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: void AddBranch(ArithmeticAdt lhs, ArithmeticAdt rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:222,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:223,1
    - Dst: ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - ToDatalogString
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AdtTest, AdtTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:37,1
    - Dst: Float
      Src: /src/raksha/src/ir/datalog/value_test.cc:38,1
    - Dst: Float::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:39,1
    - Dst: absl::SimpleAtod
      Src: /src/raksha/src/ir/datalog/value_test.cc:41,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/datalog/value_test.cc:42,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - absl::SimpleAtod
    - Float
    - ASSERT_TRUE
    - ASSERT_EQ
    - GetParam
    - Float::ToDatalogString
    linkageType: ''
    returnType: void
    signature: void TEST_P(FloatTest, FloatTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Number
      Src: /src/raksha/src/ir/datalog/value_test.cc:64,1
    - Dst: Number::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:65,1
    - Dst: absl::SimpleAtoi
      Src: /src/raksha/src/ir/datalog/value_test.cc:67,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/ir/datalog/value_test.cc:68,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - num
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: raksha::ir::datalog::RoundTripNumberThroughDatalogString
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - Number
    - ASSERT_TRUE
    - ASSERT_EQ
    - Number::ToDatalogString
    - absl::SimpleAtoi
    linkageType: ''
    returnType: void
    signature: void RoundTripNumberThroughDatalogString(int64_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/value_test.cc:80,1
    - Dst: Symbol::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:81,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:82,1
    - Dst: std::string
      Src: /src/raksha/src/ir/datalog/value_test.cc:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - symbol
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: raksha::ir::datalog::RoundTripStringThroughDatalogString
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - Symbol::ToDatalogString
    - ASSERT_EQ
    - Symbol
    linkageType: ''
    returnType: void
    signature: void RoundTripStringThroughDatalogString(absl::string_view symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:92,1
    - Dst: Record<SimpleRecord>
      Src: /src/raksha/src/ir/datalog/value_test.cc:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - Record<SimpleRecord>
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(SimpleRecordNilTest, SimpleRecordNilTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SimpleRecord
      Src: /src/raksha/src/ir/datalog/value_test.cc:100,1
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/value_test.cc:100,1
    - Dst: Number
      Src: /src/raksha/src/ir/datalog/value_test.cc:100,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:101,1
    - Dst: SimpleRecord::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:101,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/datalog/value_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - symbol
    - number
    argTypes:
    - absl::string_view
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: raksha::ir::datalog::PerformSimpleRecordTest
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 3
    functionsReached:
    - SimpleRecord
    - SimpleRecord::ToDatalogString
    - absl::StrFormat
    - ASSERT_EQ
    - Symbol
    - Number
    linkageType: ''
    returnType: void
    signature: void PerformSimpleRecordTest(absl::string_view symbol, int64_t number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::PerformSimpleRecordTest
      Src: /src/raksha/src/ir/datalog/value_test.cc:106,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:106,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:106,1
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:106,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:107,1
    - Dst: std::get<1>
      Src: /src/raksha/src/ir/datalog/value_test.cc:107,1
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::PerformSimpleRecordTest
    - std::get<1>
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(SimpleRecordTest, SimpleRecordTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:131,1
    - Dst: ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - ToDatalogString
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(NumListTest, NumListTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NumberSymbolPair
      Src: /src/raksha/src/ir/datalog/value_test.cc:159,1
    - Dst: Number
      Src: /src/raksha/src/ir/datalog/value_test.cc:159,1
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/value_test.cc:159,1
    - Dst: NumberSymbolPair
      Src: /src/raksha/src/ir/datalog/value_test.cc:161,1
    - Dst: Number
      Src: /src/raksha/src/ir/datalog/value_test.cc:161,1
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/value_test.cc:161,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:164,1
    - Dst: NumberSymbolPairPair::ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:164,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/datalog/value_test.cc:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - number1
    - symbol1
    - number2
    - symbol2
    argTypes:
    - int64_t
    - absl::string_view
    - int64_t
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 167
    functionName: raksha::ir::datalog::CheckNumberSymbolPairPair
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 3
    functionsReached:
    - EXPECT_EQ
    - NumberSymbolPair
    - NumberSymbolPairPair::ToDatalogString
    - absl::StrFormat
    - Symbol
    - Number
    linkageType: ''
    returnType: void
    signature: "void CheckNumberSymbolPairPair(int64_t number1, absl::string_view
      symbol1,\n                               int64_t number2, absl::string_view
      symbol2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:170,1
    - Dst: raksha::ir::datalog::CheckNumberSymbolPairPair
      Src: /src/raksha/src/ir/datalog/value_test.cc:171,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:171,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:171,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:172,1
    - Dst: std::get<0>
      Src: /src/raksha/src/ir/datalog/value_test.cc:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::CheckNumberSymbolPairPair
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(NumberSymbolPairPairTest, NumberSymbolPairPairTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: raksha::ir::datalog::NullBranch::NullBranch
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NullBranch()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/datalog/value_test.cc:201,1
    - Dst: std::make_unique<Number>
      Src: /src/raksha/src/ir/datalog/value_test.cc:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - number
    argTypes:
    - Number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 202
    functionName: raksha::ir::datalog::NumberBranch::NumberBranch
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<Number>
    - push_back
    linkageType: ''
    returnType: void
    signature: void NumberBranch(Number number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/datalog/value_test.cc:209,1
    - Dst: std::make_unique<ArithmeticAdt>
      Src: /src/raksha/src/ir/datalog/value_test.cc:209,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/value_test.cc:209,1
    - Dst: push_back
      Src: /src/raksha/src/ir/datalog/value_test.cc:210,1
    - Dst: std::make_unique<ArithmeticAdt>
      Src: /src/raksha/src/ir/datalog/value_test.cc:210,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/value_test.cc:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - ArithmeticAdt
    - ArithmeticAdt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: raksha::ir::datalog::AddBranch::AddBranch
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<ArithmeticAdt>
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: void AddBranch(ArithmeticAdt lhs, ArithmeticAdt rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/value_test.cc:222,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/value_test.cc:223,1
    - Dst: ToDatalogString
      Src: /src/raksha/src/ir/datalog/value_test.cc:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/value_test.cc
    functionUses: 0
    functionsReached:
    - ToDatalogString
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AdtTest, AdtTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<RelationParameterTypes>
      Src: /src/raksha/src/ir/datalog/input_relation_fact.h:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: raksha::ir::datalog::InputRelationFact::InputRelationFact
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact.h
    functionUses: 0
    functionsReached:
    - std::forward<RelationParameterTypes>
    linkageType: ''
    returnType: void
    signature: void InputRelationFact(RelationParameterTypes &&...args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/datalog/input_relation_fact.h:42,1
    - Dst: GetRelationName
      Src: /src/raksha/src/ir/datalog/input_relation_fact.h:42,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/datalog/input_relation_fact.h:43,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/datalog/input_relation_fact.h:45,1
    - Dst: raksha::ir::datalog::InputRelationFact::ToDatalogString
      Src: /src/raksha/src/ir/datalog/input_relation_fact.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: raksha::ir::datalog::InputRelationFact::ToDatalogString
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact.h
    functionUses: 1
    functionsReached:
    - absl::StrAppend
    - GetRelationName
    - absl::StrJoin
    - raksha::ir::datalog::InputRelationFact::ToDatalogString
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string ToDatalogString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/datalog/input_relation_fact.h:53,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/datalog/input_relation_fact.h:55,1
    - Dst: raksha::ir::datalog::InputRelationFact::ToDatalogString
      Src: /src/raksha/src/ir/datalog/input_relation_fact.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: raksha::ir::datalog::InputRelationFact::ToDatalogFactsFileString
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact.h
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::InputRelationFact::ToDatalogString
    - absl::StrAppend
    - absl::StrJoin
    linkageType: ''
    returnType: std::string
    signature: std::string ToDatalogFactsFileString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<RelationParameterTypes>
      Src: /src/raksha/src/ir/datalog/input_relation_fact.h:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: raksha::ir::datalog::InputRelationFact::InputRelationFact
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact.h
    functionUses: 0
    functionsReached:
    - std::forward<RelationParameterTypes>
    linkageType: ''
    returnType: void
    signature: void InputRelationFact(RelationParameterTypes &&...args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/datalog/input_relation_fact.h:42,1
    - Dst: GetRelationName
      Src: /src/raksha/src/ir/datalog/input_relation_fact.h:42,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/datalog/input_relation_fact.h:43,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/datalog/input_relation_fact.h:45,1
    - Dst: raksha::ir::datalog::InputRelationFact::ToDatalogString
      Src: /src/raksha/src/ir/datalog/input_relation_fact.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: raksha::ir::datalog::InputRelationFact::ToDatalogString
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact.h
    functionUses: 3
    functionsReached:
    - absl::StrAppend
    - GetRelationName
    - absl::StrJoin
    - raksha::ir::datalog::InputRelationFact::ToDatalogString
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string ToDatalogString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/datalog/input_relation_fact.h:53,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/datalog/input_relation_fact.h:55,1
    - Dst: raksha::ir::datalog::InputRelationFact::ToDatalogString
      Src: /src/raksha/src/ir/datalog/input_relation_fact.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: raksha::ir::datalog::InputRelationFact::ToDatalogFactsFileString
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact.h
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::InputRelationFact::ToDatalogString
    - absl::StrAppend
    - absl::StrJoin
    linkageType: ''
    returnType: std::string
    signature: std::string ToDatalogFactsFileString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/datalog/hash_test.cc:22,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/raksha/src/ir/datalog/hash_test.cc:22,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/hash_test.cc:23,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/hash_test.cc:24,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/hash_test.cc:25,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/hash_test.cc:26,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/hash_test.cc:27,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/hash_test.cc:28,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/hash_test.cc:29,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/hash_test.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/hash_test.cc
    functionUses: 0
    functionsReached:
    - Predicate
    - EXPECT_TRUE
    - absl::VerifyTypeImplementsAbslHashCorrectly
    linkageType: ''
    returnType: void
    signature: void TEST(Predicate, HashTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/datalog/hash_test.cc:35,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/raksha/src/ir/datalog/hash_test.cc:35,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:36,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:37,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:38,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/hash_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - EXPECT_TRUE
    - absl::VerifyTypeImplementsAbslHashCorrectly
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: void
    signature: void TEST(ArgumentType, HashTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/datalog/hash_test.cc:44,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/raksha/src/ir/datalog/hash_test.cc:44,1
    - Dst: Argument
      Src: /src/raksha/src/ir/datalog/hash_test.cc:45,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:45,1
    - Dst: Argument
      Src: /src/raksha/src/ir/datalog/hash_test.cc:46,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:46,1
    - Dst: Argument
      Src: /src/raksha/src/ir/datalog/hash_test.cc:47,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:47,1
    - Dst: Argument
      Src: /src/raksha/src/ir/datalog/hash_test.cc:48,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:48,1
    - Dst: Argument
      Src: /src/raksha/src/ir/datalog/hash_test.cc:49,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:49,1
    - Dst: Argument
      Src: /src/raksha/src/ir/datalog/hash_test.cc:50,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:50,1
    - Dst: Argument
      Src: /src/raksha/src/ir/datalog/hash_test.cc:51,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/hash_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - EXPECT_TRUE
    - absl::VerifyTypeImplementsAbslHashCorrectly
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - Argument
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: void
    signature: void TEST(Argument, HashTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/datalog/hash_test.cc:55,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/raksha/src/ir/datalog/hash_test.cc:55,1
    - Dst: RelationDeclaration
      Src: /src/raksha/src/ir/datalog/hash_test.cc:56,1
    - Dst: RelationDeclaration
      Src: /src/raksha/src/ir/datalog/hash_test.cc:57,1
    - Dst: RelationDeclaration
      Src: /src/raksha/src/ir/datalog/hash_test.cc:58,1
    - Dst: RelationDeclaration
      Src: /src/raksha/src/ir/datalog/hash_test.cc:59,1
    - Dst: RelationDeclaration
      Src: /src/raksha/src/ir/datalog/hash_test.cc:60,1
    - Dst: Argument
      Src: /src/raksha/src/ir/datalog/hash_test.cc:62,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:62,1
    - Dst: Argument
      Src: /src/raksha/src/ir/datalog/hash_test.cc:63,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:63,1
    - Dst: RelationDeclaration
      Src: /src/raksha/src/ir/datalog/hash_test.cc:64,1
    - Dst: Argument
      Src: /src/raksha/src/ir/datalog/hash_test.cc:66,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 68
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/hash_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - EXPECT_TRUE
    - absl::VerifyTypeImplementsAbslHashCorrectly
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - Argument
    - RelationDeclaration
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: void
    signature: void TEST(RelationDeclaration, HashTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/datalog/hash_test.cc:22,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/raksha/src/ir/datalog/hash_test.cc:22,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/hash_test.cc:23,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/hash_test.cc:24,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/hash_test.cc:25,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/hash_test.cc:26,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/hash_test.cc:27,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/hash_test.cc:28,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/hash_test.cc:29,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/hash_test.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/hash_test.cc
    functionUses: 0
    functionsReached:
    - Predicate
    - EXPECT_TRUE
    - absl::VerifyTypeImplementsAbslHashCorrectly
    linkageType: ''
    returnType: void
    signature: void TEST(Predicate, HashTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/datalog/hash_test.cc:35,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/raksha/src/ir/datalog/hash_test.cc:35,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:36,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:37,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:38,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/hash_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - EXPECT_TRUE
    - absl::VerifyTypeImplementsAbslHashCorrectly
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: void
    signature: void TEST(ArgumentType, HashTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/datalog/hash_test.cc:44,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/raksha/src/ir/datalog/hash_test.cc:44,1
    - Dst: Argument
      Src: /src/raksha/src/ir/datalog/hash_test.cc:45,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:45,1
    - Dst: Argument
      Src: /src/raksha/src/ir/datalog/hash_test.cc:46,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:46,1
    - Dst: Argument
      Src: /src/raksha/src/ir/datalog/hash_test.cc:47,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:47,1
    - Dst: Argument
      Src: /src/raksha/src/ir/datalog/hash_test.cc:48,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:48,1
    - Dst: Argument
      Src: /src/raksha/src/ir/datalog/hash_test.cc:49,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:49,1
    - Dst: Argument
      Src: /src/raksha/src/ir/datalog/hash_test.cc:50,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:50,1
    - Dst: Argument
      Src: /src/raksha/src/ir/datalog/hash_test.cc:51,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/hash_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - EXPECT_TRUE
    - absl::VerifyTypeImplementsAbslHashCorrectly
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - Argument
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: void
    signature: void TEST(Argument, HashTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/datalog/hash_test.cc:55,1
    - Dst: absl::VerifyTypeImplementsAbslHashCorrectly
      Src: /src/raksha/src/ir/datalog/hash_test.cc:55,1
    - Dst: RelationDeclaration
      Src: /src/raksha/src/ir/datalog/hash_test.cc:56,1
    - Dst: RelationDeclaration
      Src: /src/raksha/src/ir/datalog/hash_test.cc:57,1
    - Dst: RelationDeclaration
      Src: /src/raksha/src/ir/datalog/hash_test.cc:58,1
    - Dst: RelationDeclaration
      Src: /src/raksha/src/ir/datalog/hash_test.cc:59,1
    - Dst: RelationDeclaration
      Src: /src/raksha/src/ir/datalog/hash_test.cc:60,1
    - Dst: Argument
      Src: /src/raksha/src/ir/datalog/hash_test.cc:62,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:62,1
    - Dst: Argument
      Src: /src/raksha/src/ir/datalog/hash_test.cc:63,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:63,1
    - Dst: RelationDeclaration
      Src: /src/raksha/src/ir/datalog/hash_test.cc:64,1
    - Dst: Argument
      Src: /src/raksha/src/ir/datalog/hash_test.cc:66,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/datalog/hash_test.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 68
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/hash_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - EXPECT_TRUE
    - absl::VerifyTypeImplementsAbslHashCorrectly
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - Argument
    - RelationDeclaration
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: void
    signature: void TEST(RelationDeclaration, HashTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:23,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:23,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:24,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:24,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:25,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:25,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:27,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:27,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:28,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:28,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:29,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:29,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:30,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:30,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:31,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:31,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:32,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:35,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:35,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:37,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:39,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 42
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Predicate
    linkageType: ''
    returnType: void
    signature: void TEST(IsNumericOperator, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:23,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:23,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:24,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:24,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:25,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:25,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:27,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:27,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:28,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:28,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:29,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:29,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:30,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:30,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:31,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:31,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:32,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:35,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:35,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:37,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:39,1
    - Dst: Predicate
      Src: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 42
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Predicate
    linkageType: ''
    returnType: void
    signature: void TEST(IsNumericOperator, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:23,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:24,1
    - Dst: ArgumentType::name
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:24,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:25,1
    - Dst: ArgumentType::kind
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/argument_type_factory_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - ArgumentType::kind
    - ArgumentType::name
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: void
    signature: void TEST(MakeNumberTypeTest, SimpleMakeNumberTypeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:29,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:30,1
    - Dst: ArgumentType::name
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:30,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:31,1
    - Dst: ArgumentType::kind
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/argument_type_factory_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - EXPECT_EQ
    - ArgumentType::name
    - ArgumentType::kind
    linkageType: ''
    returnType: void
    signature: void TEST(MakePrincipalTypeTest, SimpleMakePrincipalTypeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:35,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:37,1
    - Dst: ArgumentType::name
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:38,1
    - Dst: ArgumentType::name
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:39,1
    - Dst: ArgumentType::kind
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:40,1
    - Dst: ArgumentType::kind
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/argument_type_factory_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - ArgumentType::kind
    - ArgumentType::name
    linkageType: ''
    returnType: void
    signature: void TEST(MakeCustomTypeTest, SimpleMakeCustomTypeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:23,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:24,1
    - Dst: ArgumentType::name
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:24,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:25,1
    - Dst: ArgumentType::kind
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/argument_type_factory_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - ArgumentType::kind
    - ArgumentType::name
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: void
    signature: void TEST(MakeNumberTypeTest, SimpleMakeNumberTypeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:29,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:30,1
    - Dst: ArgumentType::name
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:30,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:31,1
    - Dst: ArgumentType::kind
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/argument_type_factory_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - EXPECT_EQ
    - ArgumentType::name
    - ArgumentType::kind
    linkageType: ''
    returnType: void
    signature: void TEST(MakePrincipalTypeTest, SimpleMakePrincipalTypeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:35,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:37,1
    - Dst: ArgumentType::name
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:38,1
    - Dst: ArgumentType::name
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:39,1
    - Dst: ArgumentType::kind
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:40,1
    - Dst: ArgumentType::kind
      Src: /src/raksha/src/ir/datalog/argument_type_factory_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/argument_type_factory_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - ArgumentType::kind
    - ArgumentType::name
    linkageType: ''
    returnType: void
    signature: void TEST(MakeCustomTypeTest, SimpleMakeCustomTypeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/attribute.h:33,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/attribute.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - name
    - payload
    argTypes:
    - absl::string_view
    - AttributePayload
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: raksha::ir::datalog::Attribute::Attribute
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached:
    - std::move
    - Symbol
    linkageType: ''
    returnType: void
    signature: void Attribute(absl::string_view name, AttributePayload payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/datalog/attribute.h:39,1
    - Dst: std::make_unique<Symbol>
      Src: /src/raksha/src/ir/datalog/attribute.h:39,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/attribute.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - symbol
    argTypes:
    - Symbol
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: raksha::ir::datalog::Attribute::String::String
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Symbol>
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: void String(Symbol symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/attribute.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - symbol
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: raksha::ir::datalog::Attribute::String::String
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached:
    - Symbol
    linkageType: ''
    returnType: void
    signature: void String(absl::string_view symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/datalog/attribute.h:50,1
    - Dst: std::make_unique<datalog::Float>
      Src: /src/raksha/src/ir/datalog/attribute.h:51,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/attribute.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - number
    argTypes:
    - datalog::Float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: raksha::ir::datalog::Attribute::Float::Float
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached:
    - std::make_unique<datalog::Float>
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: void Float(datalog::Float number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Float::Float
      Src: /src/raksha/src/ir/datalog/attribute.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - number
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: raksha::ir::datalog::Attribute::Float::Float
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::Float::Float
    linkageType: ''
    returnType: void
    signature: void Float(double number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: raksha::ir::datalog::Attribute::Number::Number
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Number(T value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: raksha::ir::datalog::Attribute::Number::Number
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Number(double value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - value
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: raksha::ir::datalog::Attribute::Number::Number
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Number(float value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - value
    argTypes:
    - datalog::Float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: raksha::ir::datalog::Attribute::Number::Number
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Number(datalog::Float value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Number::Number
      Src: /src/raksha/src/ir/datalog/attribute.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - number
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: raksha::ir::datalog::Attribute::Number::Number
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::Number::Number
    linkageType: ''
    returnType: void
    signature: void Number(int number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/datalog/attribute.h:70,1
    - Dst: std::make_unique<datalog::Number>
      Src: /src/raksha/src/ir/datalog/attribute.h:71,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/attribute.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - number
    argTypes:
    - datalog::Number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: raksha::ir::datalog::Attribute::Number::Number
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached:
    - std::make_unique<datalog::Number>
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: void Number(datalog::Number number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Number::Number
      Src: /src/raksha/src/ir/datalog/attribute.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - number
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: raksha::ir::datalog::Attribute::Number::Number
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::Number::Number
    linkageType: ''
    returnType: void
    signature: void Number(int64_t number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/attribute.h:33,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/attribute.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - name
    - payload
    argTypes:
    - absl::string_view
    - AttributePayload
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: raksha::ir::datalog::Attribute::Attribute
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached:
    - std::move
    - Symbol
    linkageType: ''
    returnType: void
    signature: void Attribute(absl::string_view name, AttributePayload payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/datalog/attribute.h:39,1
    - Dst: std::make_unique<Symbol>
      Src: /src/raksha/src/ir/datalog/attribute.h:39,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/attribute.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - symbol
    argTypes:
    - Symbol
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: raksha::ir::datalog::Attribute::String::String
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Symbol>
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: void String(Symbol symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/attribute.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - symbol
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: raksha::ir::datalog::Attribute::String::String
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached:
    - Symbol
    linkageType: ''
    returnType: void
    signature: void String(absl::string_view symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/datalog/attribute.h:50,1
    - Dst: std::make_unique<datalog::Float>
      Src: /src/raksha/src/ir/datalog/attribute.h:51,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/attribute.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - number
    argTypes:
    - datalog::Float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: raksha::ir::datalog::Attribute::Float::Float
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached:
    - std::make_unique<datalog::Float>
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: void Float(datalog::Float number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Float::Float
      Src: /src/raksha/src/ir/datalog/attribute.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - number
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: raksha::ir::datalog::Attribute::Float::Float
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::Float::Float
    linkageType: ''
    returnType: void
    signature: void Float(double number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: raksha::ir::datalog::Attribute::Number::Number
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Number(T value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: raksha::ir::datalog::Attribute::Number::Number
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Number(double value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - value
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: raksha::ir::datalog::Attribute::Number::Number
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Number(float value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - value
    argTypes:
    - datalog::Float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: raksha::ir::datalog::Attribute::Number::Number
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Number(datalog::Float value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Number::Number
      Src: /src/raksha/src/ir/datalog/attribute.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - number
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: raksha::ir::datalog::Attribute::Number::Number
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::Number::Number
    linkageType: ''
    returnType: void
    signature: void Number(int number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/datalog/attribute.h:70,1
    - Dst: std::make_unique<datalog::Number>
      Src: /src/raksha/src/ir/datalog/attribute.h:71,1
    - Dst: std::move
      Src: /src/raksha/src/ir/datalog/attribute.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - number
    argTypes:
    - datalog::Number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: raksha::ir::datalog::Attribute::Number::Number
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached:
    - std::make_unique<datalog::Number>
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: void Number(datalog::Number number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Number::Number
      Src: /src/raksha/src/ir/datalog/attribute.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - number
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: raksha::ir::datalog::Attribute::Number::Number
    functionSourceFile: /src/raksha/src/ir/datalog/attribute.h
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::Number::Number
    linkageType: ''
    returnType: void
    signature: void Number(int64_t number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/operation_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/operation_test.cc:40,1
    - Dst: ToDatalogString
      Src: /src/raksha/src/ir/datalog/operation_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/operation_test.cc
    functionUses: 0
    functionsReached:
    - ToDatalogString
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IsOperationFactTest, IsOperationFactTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/operation_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/operation_test.cc:40,1
    - Dst: ToDatalogString
      Src: /src/raksha/src/ir/datalog/operation_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/operation_test.cc
    functionUses: 0
    functionsReached:
    - ToDatalogString
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IsOperationFactTest, IsOperationFactTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: ~IsAccessPathFact()
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~IsAccessPathFact()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: raksha::ir::datalog::IsAccessPathFact::relation_name
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view relation_name()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::IsAccessPathFact::relation_name
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: raksha::ir::datalog::IsAccessPathFact::GetRelationName
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::IsAccessPathFact::relation_name
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view GetRelationName() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:41,1
    - Dst: IsAccessPathFact
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:41,1
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:41,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IsAccessPathFact
    - Symbol
    - GetParam
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: void TEST_P(IsAccessPathFactTest, IsAccessPathFactTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:47,1
    - Dst: IsAccessPathFact
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:47,1
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:47,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IsAccessPathFact
    - Symbol
    - GetParam
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: void TEST_P(IsAccessPathFactTest, ToDatalogFactsFileStringTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: raksha::ir::datalog::UnitAdtBranch::UnitAdtBranch
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UnitAdtBranch()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: ~OneOfEachFact()
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~OneOfEachFact()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: raksha::ir::datalog::OneOfEachFact::relation_name
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view relation_name()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::OneOfEachFact::relation_name
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: raksha::ir::datalog::OneOfEachFact::GetRelationName
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::OneOfEachFact::relation_name
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view GetRelationName() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OneOfEachFact
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:79,1
    - Dst: Number
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:79,1
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:79,1
    - Dst: Record<Number, Symbol>
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:80,1
    - Dst: Number
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:80,1
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:80,1
    - Dst: SimpleAdt
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:81,1
    - Dst: UnitAdtBranch
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:82,1
    - Dst: auto::ToDatalogString
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:84,1
    - Dst: auto::ToDatalogFactsFileString
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - UnitAdtBranch
    - SimpleAdt
    - OneOfEachFact
    - auto::ToDatalogFactsFileString
    - Record<Number, Symbol>
    - Symbol
    - auto::ToDatalogString
    - Number
    linkageType: ''
    returnType: void
    signature: void TEST(OneOfEachFactTest, OneOfEachFactTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: ~IsAccessPathFact()
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~IsAccessPathFact()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: raksha::ir::datalog::IsAccessPathFact::relation_name
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact_test.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view relation_name()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::IsAccessPathFact::relation_name
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: raksha::ir::datalog::IsAccessPathFact::GetRelationName
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::IsAccessPathFact::relation_name
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view GetRelationName() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:41,1
    - Dst: IsAccessPathFact
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:41,1
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:41,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IsAccessPathFact
    - Symbol
    - GetParam
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: void TEST_P(IsAccessPathFactTest, IsAccessPathFactTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:47,1
    - Dst: IsAccessPathFact
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:47,1
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:47,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: raksha::ir::datalog::TEST_P
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - IsAccessPathFact
    - Symbol
    - GetParam
    - absl::StrFormat
    linkageType: ''
    returnType: void
    signature: void TEST_P(IsAccessPathFactTest, ToDatalogFactsFileStringTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: raksha::ir::datalog::UnitAdtBranch::UnitAdtBranch
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UnitAdtBranch()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: ~OneOfEachFact()
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~OneOfEachFact()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: raksha::ir::datalog::OneOfEachFact::relation_name
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact_test.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view relation_name()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::OneOfEachFact::relation_name
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: raksha::ir::datalog::OneOfEachFact::GetRelationName
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::OneOfEachFact::relation_name
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view GetRelationName() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OneOfEachFact
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:79,1
    - Dst: Number
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:79,1
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:79,1
    - Dst: Record<Number, Symbol>
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:80,1
    - Dst: Number
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:80,1
    - Dst: Symbol
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:80,1
    - Dst: SimpleAdt
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:81,1
    - Dst: UnitAdtBranch
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:82,1
    - Dst: auto::ToDatalogString
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:84,1
    - Dst: auto::ToDatalogFactsFileString
      Src: /src/raksha/src/ir/datalog/input_relation_fact_test.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/input_relation_fact_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - UnitAdtBranch
    - SimpleAdt
    - OneOfEachFact
    - auto::ToDatalogFactsFileString
    - Record<Number, Symbol>
    - Symbol
    - auto::ToDatalogString
    - Number
    linkageType: ''
    returnType: void
    signature: void TEST(OneOfEachFactTest, OneOfEachFactTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/datalog/predicate_test.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/predicate_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(PredicateTest, EqualReturnsForIdenticalPredicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/datalog/predicate_test.cc:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/predicate_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(PredicateTest, UnequalReturnsForDifferntPredicateNames)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/datalog/predicate_test.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/predicate_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(PredicateTest, UnequalReturnsForDifferentlyOrderedParameters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/datalog/predicate_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/predicate_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(PredicateTest, UnequalReturnsForDifferentParameterNames)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/datalog/predicate_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/predicate_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: "void TEST(PredicateTest,\n     UnequalReturnsForDifferentParameterNamesInDifferentPosition)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/datalog/predicate_test.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/predicate_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(PredicateTest, UnequalReturnsForDifferentPolarity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/datalog/predicate_test.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/predicate_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(PredicateTest, UnequalReturnsForPrefixingUnequalParameterList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/datalog/predicate_test.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/predicate_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(PredicateTest, EqualReturnsForIdenticalPredicates)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/datalog/predicate_test.cc:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/predicate_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(PredicateTest, UnequalReturnsForDifferntPredicateNames)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/datalog/predicate_test.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/predicate_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(PredicateTest, UnequalReturnsForDifferentlyOrderedParameters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/datalog/predicate_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/predicate_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(PredicateTest, UnequalReturnsForDifferentParameterNames)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/datalog/predicate_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/predicate_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: "void TEST(PredicateTest,\n     UnequalReturnsForDifferentParameterNamesInDifferentPosition)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/datalog/predicate_test.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/predicate_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(PredicateTest, UnequalReturnsForDifferentPolarity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/datalog/predicate_test.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: raksha::ir::datalog::TEST
    functionSourceFile: /src/raksha/src/ir/datalog/predicate_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(PredicateTest, UnequalReturnsForPrefixingUnequalParameterList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SouffleEmitter::EmitProgramBody
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:34,1
    - Dst: SouffleEmitter::EmitOutputs
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:35,1
    - Dst: SouffleEmitter::EmitRelationDeclarations
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:37,1
    - Dst: SouffleEmitter::EmitTypeDeclarations
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:39,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:40,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:40,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:41,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:41,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' program'
    argTypes:
    - datalog::Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 43
    functionName: raksha::ir::auth_logic::SouffleEmitter::EmitProgram
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 1
    functionsReached:
    - SouffleEmitter::EmitOutputs
    - SouffleEmitter::EmitTypeDeclarations
    - SouffleEmitter::EmitRelationDeclarations
    - std::move
    - absl::StrCat
    - SouffleEmitter::EmitProgramBody
    linkageType: ''
    returnType: std::string
    signature: "std::string EmitProgram(const datalog::Program& program,\n                                 bool
      skip_declarations = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::flat_hash_set<std::string>::string>
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 67
    functionName: '& GetRelationsToNotDeclare()'
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 0
    functionsReached:
    - absl::flat_hash_set<std::string>::string>
    linkageType: ''
    returnType: absl::flat_hash_set<std::string>
    signature: absl::flat_hash_set<std::string> & GetRelationsToNotDeclare()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: raksha::ir::auth_logic::SouffleEmitter::SouffleEmitter
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SouffleEmitter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:83,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:84,1
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:85,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:85,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:87,1
    - Dst: std::to_string
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' predicate'
    argTypes:
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: raksha::ir::auth_logic::SouffleEmitter::PredToDeclaration
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 0
    functionsReached:
    - utils::MapIter<std::string>
    - args
    - name
    - raksha::ir::datalog::Predicate::Predicate
    - std::to_string
    - absl::StrCat
    linkageType: ''
    returnType: datalog::Predicate
    signature: datalog::Predicate PredToDeclaration(const datalog::Predicate& predicate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::flat_hash_set::find
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:99,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:99,1
    - Dst: absl::flat_hash_set::end
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:100,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:101,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:101,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:102,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:102,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:102,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:103,1
    - Dst: insert
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:107,1
    - Dst: raksha::ir::auth_logic::SouffleEmitter::PredToDeclaration
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:107,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:108,1
    - Dst: sign
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:108,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:109,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:110,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' predicate'
    argTypes:
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 111
    functionName: raksha::ir::auth_logic::SouffleEmitter::EmitPredicate
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 0
    functionsReached:
    - args
    - name
    - raksha::ir::auth_logic::SouffleEmitter::PredToDeclaration
    - absl::StrJoin
    - absl::flat_hash_set::find
    - absl::flat_hash_set::end
    - CHECK
    - absl::StrCat
    - sign
    - insert
    linkageType: ''
    returnType: std::string
    signature: std::string EmitPredicate(const datalog::Predicate& predicate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:114,1
    - Dst: rhs
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:115,1
    - Dst: raksha::ir::auth_logic::SouffleEmitter::EmitPredicate
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:116,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:117,1
    - Dst: raksha::ir::auth_logic::SouffleEmitter::EmitPredicate
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:118,1
    - Dst: lhs
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:118,1
    - Dst: std::vector::size
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:119,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:121,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' cond_assertion'
    argTypes:
    - datalog::Rule
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 123
    functionName: raksha::ir::auth_logic::SouffleEmitter::EmitAssertion
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 0
    functionsReached:
    - utils::MapIter<std::string>
    - lhs
    - absl::StrJoin
    - rhs
    - absl::StrCat
    - raksha::ir::auth_logic::SouffleEmitter::EmitPredicate
    - std::vector::size
    linkageType: ''
    returnType: std::string
    signature: std::string EmitAssertion(const datalog::Rule& cond_assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:126,1
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:127,1
    - Dst: rules
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:128,1
    - Dst: raksha::ir::auth_logic::SouffleEmitter::EmitAssertion
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' program'
    argTypes:
    - datalog::Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: raksha::ir::auth_logic::SouffleEmitter::EmitProgramBody
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::SouffleEmitter::EmitAssertion
    - utils::MapIter<std::string>
    - rules
    - absl::StrJoin
    linkageType: ''
    returnType: std::string
    signature: std::string EmitProgramBody(const datalog::Program& program)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:134,1
    - Dst: outputs
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:134,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' program'
    argTypes:
    - datalog::Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: raksha::ir::auth_logic::SouffleEmitter::EmitOutputs
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 0
    functionsReached:
    - outputs
    - absl::StrAppend
    - absl::StrJoin
    linkageType: ''
    returnType: std::string
    signature: std::string EmitOutputs(const datalog::Program& program)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:141,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:142,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:143,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:145,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' predicate'
    argTypes:
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: raksha::ir::auth_logic::SouffleEmitter::EmitDeclaration
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 0
    functionsReached:
    - absl::StrAppend
    - args
    - name
    - absl::StrJoin
    - absl::StrCat
    linkageType: ''
    returnType: std::string
    signature: std::string EmitDeclaration(const datalog::Predicate& predicate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:149,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:151,1
    - Dst: argument_name
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:151,1
    - Dst: argument_type
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' arguments'
    argTypes:
    - std::vector<datalog::Argument>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: raksha::ir::auth_logic::SouffleEmitter::EmitArguments
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 0
    functionsReached:
    - argument_type
    - absl::StrAppend
    - argument_name
    - absl::StrJoin
    linkageType: ''
    returnType: std::string
    signature: std::string EmitArguments(const std::vector<datalog::Argument>& arguments)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: relation_declarations
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:159,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:160,1
    - Dst: GetRelationsToNotDeclare
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:160,1
    - Dst: GetRelationsToNotDeclare
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:162,1
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:162,1
    - Dst: GetRelationsToNotDeclare
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:163,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:165,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:166,1
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:166,1
    - Dst: raksha::ir::auth_logic::SouffleEmitter::EmitArguments
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:167,1
    - Dst: arguments
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:167,1
    - Dst: std::sort
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:169,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:169,1
    - Dst: std::vector::end
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:169,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - ' program'
    - skip_declarations
    argTypes:
    - datalog::Program
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 171
    functionName: raksha::ir::auth_logic::SouffleEmitter::EmitRelationDeclarations
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::vector::begin
    - absl::StrJoin
    - GetRelationsToNotDeclare
    - arguments
    - CHECK
    - std::vector::end
    - absl::StrCat
    - relation_declarations
    - std::sort
    - raksha::ir::auth_logic::SouffleEmitter::EmitArguments
    - relation_name
    linkageType: ''
    returnType: std::string
    signature: "std::string EmitRelationDeclarations(const datalog::Program& program,\n
      \                                      const bool skip_declarations)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: relation_declarations
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:176,1
    - Dst: arguments
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:177,1
    - Dst: argument_type
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:178,1
    - Dst: GetRelationsToNotDeclare
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:182,1
    - Dst: argument_type
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:182,1
    - Dst: GetRelationsToNotDeclare
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:183,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:185,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:185,1
    - Dst: argument_type
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:186,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:190,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:190,1
    - Dst: absl::flat_hash_set::begin
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:191,1
    - Dst: absl::flat_hash_set::end
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:192,1
    - Dst: std::sort
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:193,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:193,1
    - Dst: std::vector::end
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:193,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:194,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 2
    argNames:
    - ' program'
    - skip_declarations
    argTypes:
    - datalog::Program
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 195
    functionName: raksha::ir::auth_logic::SouffleEmitter::EmitTypeDeclarations
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - absl::flat_hash_set::insert
    - argument_type
    - absl::StrJoin
    - arguments
    - GetRelationsToNotDeclare
    - absl::flat_hash_set::begin
    - absl::flat_hash_set::end
    - std::vector::end
    - absl::StrCat
    - relation_declarations
    - std::sort
    linkageType: ''
    returnType: std::string
    signature: "std::string EmitTypeDeclarations(const datalog::Program& program,\n
      \                                  const bool skip_declarations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SouffleEmitter::EmitProgramBody
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:34,1
    - Dst: SouffleEmitter::EmitOutputs
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:35,1
    - Dst: SouffleEmitter::EmitRelationDeclarations
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:37,1
    - Dst: SouffleEmitter::EmitTypeDeclarations
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:39,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:40,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:40,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:41,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:41,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' program'
    argTypes:
    - datalog::Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 43
    functionName: raksha::ir::auth_logic::SouffleEmitter::EmitProgram
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 1
    functionsReached:
    - SouffleEmitter::EmitOutputs
    - SouffleEmitter::EmitTypeDeclarations
    - SouffleEmitter::EmitRelationDeclarations
    - std::move
    - absl::StrCat
    - SouffleEmitter::EmitProgramBody
    linkageType: ''
    returnType: std::string
    signature: "std::string EmitProgram(const datalog::Program& program,\n                                 bool
      skip_declarations = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::flat_hash_set<std::string>::string>
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 67
    functionName: '& GetRelationsToNotDeclare()'
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 0
    functionsReached:
    - absl::flat_hash_set<std::string>::string>
    linkageType: ''
    returnType: absl::flat_hash_set<std::string>
    signature: absl::flat_hash_set<std::string> & GetRelationsToNotDeclare()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: raksha::ir::auth_logic::SouffleEmitter::SouffleEmitter
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SouffleEmitter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:83,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:84,1
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:85,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:85,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:87,1
    - Dst: std::to_string
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' predicate'
    argTypes:
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: raksha::ir::auth_logic::SouffleEmitter::PredToDeclaration
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 1
    functionsReached:
    - utils::MapIter<std::string>
    - args
    - name
    - raksha::ir::datalog::Predicate::Predicate
    - std::to_string
    - absl::StrCat
    linkageType: ''
    returnType: datalog::Predicate
    signature: datalog::Predicate PredToDeclaration(const datalog::Predicate& predicate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::flat_hash_set::find
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:99,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:99,1
    - Dst: absl::flat_hash_set::end
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:100,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:101,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:101,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:102,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:102,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:102,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:103,1
    - Dst: insert
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:107,1
    - Dst: raksha::ir::auth_logic::SouffleEmitter::PredToDeclaration
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:107,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:108,1
    - Dst: sign
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:108,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:109,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:110,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' predicate'
    argTypes:
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 111
    functionName: raksha::ir::auth_logic::SouffleEmitter::EmitPredicate
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 1
    functionsReached:
    - args
    - name
    - raksha::ir::auth_logic::SouffleEmitter::PredToDeclaration
    - absl::StrJoin
    - absl::flat_hash_set::find
    - absl::flat_hash_set::end
    - CHECK
    - absl::StrCat
    - sign
    - insert
    linkageType: ''
    returnType: std::string
    signature: std::string EmitPredicate(const datalog::Predicate& predicate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:114,1
    - Dst: rhs
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:115,1
    - Dst: raksha::ir::auth_logic::SouffleEmitter::EmitPredicate
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:116,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:117,1
    - Dst: raksha::ir::auth_logic::SouffleEmitter::EmitPredicate
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:118,1
    - Dst: lhs
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:118,1
    - Dst: std::vector::size
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:119,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:121,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' cond_assertion'
    argTypes:
    - datalog::Rule
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 123
    functionName: raksha::ir::auth_logic::SouffleEmitter::EmitAssertion
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 1
    functionsReached:
    - utils::MapIter<std::string>
    - lhs
    - absl::StrJoin
    - rhs
    - absl::StrCat
    - raksha::ir::auth_logic::SouffleEmitter::EmitPredicate
    - std::vector::size
    linkageType: ''
    returnType: std::string
    signature: std::string EmitAssertion(const datalog::Rule& cond_assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:126,1
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:127,1
    - Dst: rules
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:128,1
    - Dst: raksha::ir::auth_logic::SouffleEmitter::EmitAssertion
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' program'
    argTypes:
    - datalog::Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: raksha::ir::auth_logic::SouffleEmitter::EmitProgramBody
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::SouffleEmitter::EmitAssertion
    - utils::MapIter<std::string>
    - rules
    - absl::StrJoin
    linkageType: ''
    returnType: std::string
    signature: std::string EmitProgramBody(const datalog::Program& program)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:134,1
    - Dst: outputs
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:134,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' program'
    argTypes:
    - datalog::Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: raksha::ir::auth_logic::SouffleEmitter::EmitOutputs
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 0
    functionsReached:
    - outputs
    - absl::StrAppend
    - absl::StrJoin
    linkageType: ''
    returnType: std::string
    signature: std::string EmitOutputs(const datalog::Program& program)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:141,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:142,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:143,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:145,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' predicate'
    argTypes:
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: raksha::ir::auth_logic::SouffleEmitter::EmitDeclaration
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 0
    functionsReached:
    - absl::StrAppend
    - args
    - name
    - absl::StrJoin
    - absl::StrCat
    linkageType: ''
    returnType: std::string
    signature: std::string EmitDeclaration(const datalog::Predicate& predicate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:149,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:151,1
    - Dst: argument_name
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:151,1
    - Dst: argument_type
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' arguments'
    argTypes:
    - std::vector<datalog::Argument>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: raksha::ir::auth_logic::SouffleEmitter::EmitArguments
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 1
    functionsReached:
    - argument_type
    - absl::StrAppend
    - argument_name
    - absl::StrJoin
    linkageType: ''
    returnType: std::string
    signature: std::string EmitArguments(const std::vector<datalog::Argument>& arguments)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: relation_declarations
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:159,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:160,1
    - Dst: GetRelationsToNotDeclare
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:160,1
    - Dst: GetRelationsToNotDeclare
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:162,1
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:162,1
    - Dst: GetRelationsToNotDeclare
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:163,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:165,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:166,1
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:166,1
    - Dst: raksha::ir::auth_logic::SouffleEmitter::EmitArguments
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:167,1
    - Dst: arguments
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:167,1
    - Dst: std::sort
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:169,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:169,1
    - Dst: std::vector::end
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:169,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - ' program'
    - skip_declarations
    argTypes:
    - datalog::Program
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 171
    functionName: raksha::ir::auth_logic::SouffleEmitter::EmitRelationDeclarations
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::vector::begin
    - absl::StrJoin
    - GetRelationsToNotDeclare
    - arguments
    - CHECK
    - std::vector::end
    - absl::StrCat
    - relation_declarations
    - std::sort
    - raksha::ir::auth_logic::SouffleEmitter::EmitArguments
    - relation_name
    linkageType: ''
    returnType: std::string
    signature: "std::string EmitRelationDeclarations(const datalog::Program& program,\n
      \                                      const bool skip_declarations)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: relation_declarations
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:176,1
    - Dst: arguments
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:177,1
    - Dst: argument_type
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:178,1
    - Dst: GetRelationsToNotDeclare
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:182,1
    - Dst: argument_type
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:182,1
    - Dst: GetRelationsToNotDeclare
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:183,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:185,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:185,1
    - Dst: argument_type
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:186,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:190,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:190,1
    - Dst: absl::flat_hash_set::begin
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:191,1
    - Dst: absl::flat_hash_set::end
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:192,1
    - Dst: std::sort
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:193,1
    - Dst: std::vector::begin
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:193,1
    - Dst: std::vector::end
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:193,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter.h:194,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 2
    argNames:
    - ' program'
    - skip_declarations
    argTypes:
    - datalog::Program
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 195
    functionName: raksha::ir::auth_logic::SouffleEmitter::EmitTypeDeclarations
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter.h
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - absl::flat_hash_set::insert
    - argument_type
    - absl::StrJoin
    - arguments
    - GetRelationsToNotDeclare
    - absl::flat_hash_set::begin
    - absl::flat_hash_set::end
    - std::vector::end
    - absl::StrCat
    - relation_declarations
    - std::sort
    linkageType: ''
    returnType: std::string
    signature: "std::string EmitTypeDeclarations(const datalog::Program& program,\n
      \                                  const bool skip_declarations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: ~AuthLogicAstVisitor()
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~AuthLogicAstVisitor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: ~AuthLogicAstVisitor()
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~AuthLogicAstVisitor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: raksha::ir::auth_logic::Principal::Principal
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Principal(std::string name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: '& name() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Mutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: raksha::ir::auth_logic::Principal::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(AuthLogicAstVisitor<Derived, Result, Mutable>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Immutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: raksha::ir::auth_logic::Principal::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: "Result Accept(\n      AuthLogicAstVisitor<Derived, Result, Immutable>&
      visitor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Principal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: operator==(const Principal& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Principal& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Principal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: operator!=(const Principal& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Principal& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - principal
    - predicate
    argTypes:
    - Principal
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: raksha::ir::auth_logic::Attribute::Attribute
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Attribute(Principal principal, datalog::Predicate predicate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: '& principal() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Principal
    signature: Principal & principal() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: '& predicate() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: datalog::Predicate
    signature: datalog::Predicate & predicate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Mutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: raksha::ir::auth_logic::Attribute::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(AuthLogicAstVisitor<Derived, Result, Mutable>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Immutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: raksha::ir::auth_logic::Attribute::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: "Result Accept(\n      AuthLogicAstVisitor<Derived, Result, Immutable>&
      visitor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: operator==(const Attribute& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Attribute& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: operator!=(const Attribute& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Attribute& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:95,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - left_principal
    - right_principal
    argTypes:
    - Principal
    - Principal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: raksha::ir::auth_logic::CanActAs::CanActAs
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CanActAs(Principal left_principal, Principal right_principal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: '& left_principal() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Principal
    signature: Principal & left_principal() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: '& right_principal() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Principal
    signature: Principal & right_principal() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Mutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: raksha::ir::auth_logic::CanActAs::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(AuthLogicAstVisitor<Derived, Result, Mutable>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Immutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: raksha::ir::auth_logic::CanActAs::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: "Result Accept(\n      AuthLogicAstVisitor<Derived, Result, Immutable>&
      visitor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CanActAs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: operator==(const CanActAs& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const CanActAs& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CanActAs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: operator!=(const CanActAs& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const CanActAs& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - BaseFactVariantType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: raksha::ir::auth_logic::BaseFact::BaseFact
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void BaseFact(BaseFactVariantType value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: '& GetValue() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BaseFactVariantType
    signature: BaseFactVariantType & GetValue() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Mutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: raksha::ir::auth_logic::BaseFact::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(AuthLogicAstVisitor<Derived, Result, Mutable>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Immutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: raksha::ir::auth_logic::BaseFact::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: "Result Accept(\n      AuthLogicAstVisitor<Derived, Result, Immutable>&
      visitor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - BaseFact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: operator==(const BaseFact& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BaseFact& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - BaseFact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: operator!=(const BaseFact& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BaseFact& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:165,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - delegation_chain
    - base_fact
    argTypes:
    - std::forward_list<Principal>
    - BaseFact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: raksha::ir::auth_logic::Fact::Fact
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Fact(std::forward_list<Principal> delegation_chain, BaseFact base_fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: '& delegation_chain() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::forward_list<Principal>
    signature: std::forward_list<Principal> & delegation_chain() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: '& base_fact() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BaseFact
    signature: BaseFact & base_fact() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Mutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: raksha::ir::auth_logic::Fact::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(AuthLogicAstVisitor<Derived, Result, Mutable>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Immutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: raksha::ir::auth_logic::Fact::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: "Result Accept(\n      AuthLogicAstVisitor<Derived, Result, Immutable>&
      visitor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Fact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: operator==(const Fact& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Fact& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Fact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: operator!=(const Fact& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Fact& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:203,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - Fact
    - std::vector<BaseFact>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: raksha::ir::auth_logic::ConditionalAssertion::ConditionalAssertion
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ConditionalAssertion(Fact lhs, std::vector<BaseFact> rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: '& lhs() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Fact
    signature: Fact & lhs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: '& rhs() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<BaseFact>
    signature: std::vector<BaseFact> & rhs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Mutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: raksha::ir::auth_logic::ConditionalAssertion::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(AuthLogicAstVisitor<Derived, Result, Mutable>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Immutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: raksha::ir::auth_logic::ConditionalAssertion::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: "Result Accept(\n      AuthLogicAstVisitor<Derived, Result, Immutable>&
      visitor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ConditionalAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: operator==(const ConditionalAssertion& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const ConditionalAssertion& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ConditionalAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: operator!=(const ConditionalAssertion& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const ConditionalAssertion& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - AssertionVariantType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: raksha::ir::auth_logic::Assertion::Assertion
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Assertion(AssertionVariantType value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: '& GetValue() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AssertionVariantType
    signature: AssertionVariantType & GetValue() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Mutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 246
    functionName: raksha::ir::auth_logic::Assertion::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(AuthLogicAstVisitor<Derived, Result, Mutable>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Immutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: raksha::ir::auth_logic::Assertion::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: "Result Accept(\n      AuthLogicAstVisitor<Derived, Result, Immutable>&
      visitor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Assertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 254
    functionName: operator==(const Assertion& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Assertion& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Assertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 256
    functionName: operator!=(const Assertion& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Assertion& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:266,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - principal
    - assertions
    argTypes:
    - Principal
    - std::vector<Assertion>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: raksha::ir::auth_logic::SaysAssertion::SaysAssertion
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void SaysAssertion(Principal principal, std::vector<Assertion> assertions)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 267
    functionName: '& principal() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Principal
    signature: Principal & principal() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 268
    functionName: '& assertions() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Assertion>
    signature: std::vector<Assertion> & assertions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Mutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 273
    functionName: raksha::ir::auth_logic::SaysAssertion::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(AuthLogicAstVisitor<Derived, Result, Mutable>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Immutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: raksha::ir::auth_logic::SaysAssertion::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: "Result Accept(\n      AuthLogicAstVisitor<Derived, Result, Immutable>&
      visitor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - SaysAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 283
    functionName: operator==(const SaysAssertion& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const SaysAssertion& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - SaysAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: operator!=(const SaysAssertion& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const SaysAssertion& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:297,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:298,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - name
    - principal
    - fact
    argTypes:
    - std::string
    - Principal
    - Fact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: raksha::ir::auth_logic::Query::Query
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Query(std::string name, Principal principal, Fact fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: '& name() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 301
    functionName: '& principal() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Principal
    signature: Principal & principal() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 302
    functionName: '& fact() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Fact
    signature: Fact & fact() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Mutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 307
    functionName: raksha::ir::auth_logic::Query::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(AuthLogicAstVisitor<Derived, Result, Mutable>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Immutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: raksha::ir::auth_logic::Query::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: "Result Accept(\n      AuthLogicAstVisitor<Derived, Result, Immutable>&
      visitor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Query
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: operator==(const Query& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Query& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Query
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 320
    functionName: operator!=(const Query& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Query& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:334,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:335,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - relation_declarations
    - says_assertions
    - queries
    argTypes:
    - std::vector<datalog::RelationDeclaration>
    - std::vector<SaysAssertion>
    - std::vector<Query>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 336
    functionName: raksha::ir::auth_logic::Program::Program
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Program(\n      std::vector<datalog::RelationDeclaration> relation_declarations,\n
      \     std::vector<SaysAssertion> says_assertions, std::vector<Query> queries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: "& relation_declarations()\n      const"
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<datalog::RelationDeclaration>
    signature: "std::vector<datalog::RelationDeclaration> & relation_declarations()\n
      \     const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 345
    functionName: '& says_assertions() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<SaysAssertion>
    signature: std::vector<SaysAssertion> & says_assertions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 347
    functionName: '& queries() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Query>
    signature: std::vector<Query> & queries() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Mutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 352
    functionName: raksha::ir::auth_logic::Program::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(AuthLogicAstVisitor<Derived, Result, Mutable>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Immutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: raksha::ir::auth_logic::Program::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: "Result Accept(\n      AuthLogicAstVisitor<Derived, Result, Immutable>&
      visitor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: operator==(const Program& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Program& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 365
    functionName: operator!=(const Program& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Program& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: raksha::ir::auth_logic::Principal::Principal
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Principal(std::string name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: '& name() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Mutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: raksha::ir::auth_logic::Principal::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(AuthLogicAstVisitor<Derived, Result, Mutable>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Immutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: raksha::ir::auth_logic::Principal::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: "Result Accept(\n      AuthLogicAstVisitor<Derived, Result, Immutable>&
      visitor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Principal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: operator==(const Principal& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Principal& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Principal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: operator!=(const Principal& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Principal& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - principal
    - predicate
    argTypes:
    - Principal
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: raksha::ir::auth_logic::Attribute::Attribute
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Attribute(Principal principal, datalog::Predicate predicate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: '& principal() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Principal
    signature: Principal & principal() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: '& predicate() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: datalog::Predicate
    signature: datalog::Predicate & predicate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Mutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: raksha::ir::auth_logic::Attribute::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(AuthLogicAstVisitor<Derived, Result, Mutable>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Immutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: raksha::ir::auth_logic::Attribute::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: "Result Accept(\n      AuthLogicAstVisitor<Derived, Result, Immutable>&
      visitor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: operator==(const Attribute& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Attribute& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: operator!=(const Attribute& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Attribute& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:95,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - left_principal
    - right_principal
    argTypes:
    - Principal
    - Principal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: raksha::ir::auth_logic::CanActAs::CanActAs
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void CanActAs(Principal left_principal, Principal right_principal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: '& left_principal() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Principal
    signature: Principal & left_principal() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: '& right_principal() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Principal
    signature: Principal & right_principal() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Mutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: raksha::ir::auth_logic::CanActAs::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(AuthLogicAstVisitor<Derived, Result, Mutable>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Immutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: raksha::ir::auth_logic::CanActAs::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: "Result Accept(\n      AuthLogicAstVisitor<Derived, Result, Immutable>&
      visitor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CanActAs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: operator==(const CanActAs& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const CanActAs& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - CanActAs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: operator!=(const CanActAs& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const CanActAs& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - BaseFactVariantType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: raksha::ir::auth_logic::BaseFact::BaseFact
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void BaseFact(BaseFactVariantType value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: '& GetValue() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BaseFactVariantType
    signature: BaseFactVariantType & GetValue() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Mutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: raksha::ir::auth_logic::BaseFact::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(AuthLogicAstVisitor<Derived, Result, Mutable>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Immutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: raksha::ir::auth_logic::BaseFact::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: "Result Accept(\n      AuthLogicAstVisitor<Derived, Result, Immutable>&
      visitor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - BaseFact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: operator==(const BaseFact& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const BaseFact& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - BaseFact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: operator!=(const BaseFact& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const BaseFact& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:165,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - delegation_chain
    - base_fact
    argTypes:
    - std::forward_list<Principal>
    - BaseFact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: raksha::ir::auth_logic::Fact::Fact
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Fact(std::forward_list<Principal> delegation_chain, BaseFact base_fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: '& delegation_chain() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::forward_list<Principal>
    signature: std::forward_list<Principal> & delegation_chain() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: '& base_fact() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BaseFact
    signature: BaseFact & base_fact() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Mutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: raksha::ir::auth_logic::Fact::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(AuthLogicAstVisitor<Derived, Result, Mutable>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Immutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: raksha::ir::auth_logic::Fact::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: "Result Accept(\n      AuthLogicAstVisitor<Derived, Result, Immutable>&
      visitor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Fact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: operator==(const Fact& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Fact& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Fact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: operator!=(const Fact& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Fact& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:203,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - Fact
    - std::vector<BaseFact>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: raksha::ir::auth_logic::ConditionalAssertion::ConditionalAssertion
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ConditionalAssertion(Fact lhs, std::vector<BaseFact> rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: '& lhs() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Fact
    signature: Fact & lhs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: '& rhs() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<BaseFact>
    signature: std::vector<BaseFact> & rhs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Mutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: raksha::ir::auth_logic::ConditionalAssertion::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(AuthLogicAstVisitor<Derived, Result, Mutable>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Immutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: raksha::ir::auth_logic::ConditionalAssertion::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: "Result Accept(\n      AuthLogicAstVisitor<Derived, Result, Immutable>&
      visitor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ConditionalAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: operator==(const ConditionalAssertion& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const ConditionalAssertion& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ConditionalAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: operator!=(const ConditionalAssertion& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const ConditionalAssertion& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - AssertionVariantType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: raksha::ir::auth_logic::Assertion::Assertion
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Assertion(AssertionVariantType value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: '& GetValue() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AssertionVariantType
    signature: AssertionVariantType & GetValue() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Mutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 246
    functionName: raksha::ir::auth_logic::Assertion::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(AuthLogicAstVisitor<Derived, Result, Mutable>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Immutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: raksha::ir::auth_logic::Assertion::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: "Result Accept(\n      AuthLogicAstVisitor<Derived, Result, Immutable>&
      visitor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Assertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 254
    functionName: operator==(const Assertion& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Assertion& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Assertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 256
    functionName: operator!=(const Assertion& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Assertion& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:266,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - principal
    - assertions
    argTypes:
    - Principal
    - std::vector<Assertion>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: raksha::ir::auth_logic::SaysAssertion::SaysAssertion
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void SaysAssertion(Principal principal, std::vector<Assertion> assertions)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 267
    functionName: '& principal() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Principal
    signature: Principal & principal() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 268
    functionName: '& assertions() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Assertion>
    signature: std::vector<Assertion> & assertions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Mutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 273
    functionName: raksha::ir::auth_logic::SaysAssertion::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(AuthLogicAstVisitor<Derived, Result, Mutable>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Immutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: raksha::ir::auth_logic::SaysAssertion::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: "Result Accept(\n      AuthLogicAstVisitor<Derived, Result, Immutable>&
      visitor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - SaysAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 283
    functionName: operator==(const SaysAssertion& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const SaysAssertion& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - SaysAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: operator!=(const SaysAssertion& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const SaysAssertion& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:297,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:298,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - name
    - principal
    - fact
    argTypes:
    - std::string
    - Principal
    - Fact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: raksha::ir::auth_logic::Query::Query
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Query(std::string name, Principal principal, Fact fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: '& name() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 301
    functionName: '& principal() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Principal
    signature: Principal & principal() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 302
    functionName: '& fact() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Fact
    signature: Fact & fact() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Mutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 307
    functionName: raksha::ir::auth_logic::Query::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(AuthLogicAstVisitor<Derived, Result, Mutable>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Immutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: raksha::ir::auth_logic::Query::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: "Result Accept(\n      AuthLogicAstVisitor<Derived, Result, Immutable>&
      visitor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Query
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: operator==(const Query& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Query& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Query
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 320
    functionName: operator!=(const Query& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Query& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:334,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:335,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast.h:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - relation_declarations
    - says_assertions
    - queries
    argTypes:
    - std::vector<datalog::RelationDeclaration>
    - std::vector<SaysAssertion>
    - std::vector<Query>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 336
    functionName: raksha::ir::auth_logic::Program::Program
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Program(\n      std::vector<datalog::RelationDeclaration> relation_declarations,\n
      \     std::vector<SaysAssertion> says_assertions, std::vector<Query> queries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: "& relation_declarations()\n      const"
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<datalog::RelationDeclaration>
    signature: "std::vector<datalog::RelationDeclaration> & relation_declarations()\n
      \     const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 345
    functionName: '& says_assertions() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<SaysAssertion>
    signature: std::vector<SaysAssertion> & says_assertions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 347
    functionName: '& queries() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Query>
    signature: std::vector<Query> & queries() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Mutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 352
    functionName: raksha::ir::auth_logic::Program::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: Result Accept(AuthLogicAstVisitor<Derived, Result, Mutable>& visitor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Visit
      Src: /src/raksha/src/ir/auth_logic/ast.h:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' visitor'
    argTypes:
    - AuthLogicAstVisitor<Derived, Result, Immutable>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: raksha::ir::auth_logic::Program::Accept
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached:
    - Visit
    linkageType: ''
    returnType: Result
    signature: "Result Accept(\n      AuthLogicAstVisitor<Derived, Result, Immutable>&
      visitor) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: operator==(const Program& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Program& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 365
    functionName: operator!=(const Program& rhs) const
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const Program& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: raksha::ir::auth_logic::PrincipalNameCollectorVisitor::GetDefaultValue
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::btree_set<std::string>
    signature: absl::btree_set<std::string> GetDefaultValue() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::btree_set<std::string>::merge
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:39,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - acc
    - child_result
    argTypes:
    - absl::btree_set<std::string>
    - absl::btree_set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: raksha::ir::auth_logic::PrincipalNameCollectorVisitor::CombineResult
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    - absl::btree_set<std::string>::merge
    linkageType: ''
    returnType: absl::btree_set<std::string>
    signature: "absl::btree_set<std::string> CombineResult(\n      absl::btree_set<std::string>
      acc,\n      absl::btree_set<std::string> child_result) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' principal'
    argTypes:
    - Principal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: raksha::ir::auth_logic::PrincipalNameCollectorVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: absl::btree_set<std::string>
    signature: absl::btree_set<std::string> PreVisit(const Principal& principal) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:49,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:50,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:51,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:51,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:51,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:51,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:53,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:54,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:55,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:56,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:56,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:56,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:58,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:59,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:60,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:60,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:60,1
    - Dst: CanActAs
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:60,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:60,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:61,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:63,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:63,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:63,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:64,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 65
    functionName: raksha::ir::auth_logic::BuildTestProgram1
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Principal
    - Fact
    - Assertion
    - CanActAs
    - SaysAssertion
    - BaseFact
    - std::move
    - raksha::ir::datalog::Predicate::Predicate
    - Program
    linkageType: ''
    returnType: Program
    signature: Program BuildTestProgram1()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::BuildTestProgram1
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:68,1
    - Dst: Program::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Program::Accept
    - EXPECT_EQ
    - raksha::ir::auth_logic::BuildTestProgram1
    linkageType: ''
    returnType: void
    signature: void TEST(AuthLogicAstTraversingVisitorTest, PrincipalNameCollectorTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - traversal_type
    argTypes:
    - TraversalType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::TraversalOrderVisitor
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TraversalOrderVisitor(TraversalType traversal_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:94,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' prin'
    argTypes:
    - Principal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Principal& prin) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' prin'
    - result
    argTypes:
    - Principal
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Principal& prin, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:103,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' attrib'
    argTypes:
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Attribute& attrib) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' attrib'
    - result
    argTypes:
    - Attribute
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Attribute& attrib, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:112,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' canActAs'
    argTypes:
    - CanActAs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const CanActAs& canActAs) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' canActAs'
    - result
    argTypes:
    - CanActAs
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const CanActAs& canActAs, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:121,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' baseFact'
    argTypes:
    - BaseFact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const BaseFact& baseFact) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' baseFact'
    - result
    argTypes:
    - BaseFact
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const BaseFact& baseFact, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:130,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' fact'
    argTypes:
    - Fact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Fact& fact) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' fact'
    - result
    argTypes:
    - Fact
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Fact& fact, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:139,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' condAssertion'
    argTypes:
    - ConditionalAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const ConditionalAssertion& condAssertion) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' condAssertion'
    - result
    argTypes:
    - ConditionalAssertion
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: "Unit PostVisit(const ConditionalAssertion& condAssertion,\n                 Unit
      result) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:149,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' assertion'
    argTypes:
    - Assertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Assertion& assertion) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' assertion'
    - result
    argTypes:
    - Assertion
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Assertion& assertion, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:158,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' saysAssertion'
    argTypes:
    - SaysAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const SaysAssertion& saysAssertion) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' saysAssertion'
    - result
    argTypes:
    - SaysAssertion
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const SaysAssertion& saysAssertion, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:167,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' query'
    argTypes:
    - Query
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Query& query) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' query'
    - result
    argTypes:
    - Query
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Query& query, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:176,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' program'
    argTypes:
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Program& program) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' program'
    - result
    argTypes:
    - Program
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Program& program, Unit result) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: '& nodes() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<AstNodeVariantType>
    signature: std::vector<AstNodeVariantType> & nodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Program::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:220,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:221,1
    - Dst: TraversalOrderVisitor::nodes
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:221,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:222,1
    - Dst: Program::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:229,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:230,1
    - Dst: TraversalOrderVisitor::nodes
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:230,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:231,1
    - Dst: ConditionalAssertion::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:246,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:247,1
    - Dst: TraversalOrderVisitor::nodes
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:248,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:249,1
    - Dst: ConditionalAssertion::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:253,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:254,1
    - Dst: TraversalOrderVisitor::nodes
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:255,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:256,1
    - Dst: CanActAs::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:260,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:261,1
    - Dst: TraversalOrderVisitor::nodes
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:262,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 264
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Program::Accept
    - CanActAs::Accept
    - testing::ElementsAre
    - ConditionalAssertion::Accept
    - TraversalOrderVisitor::nodes
    - EXPECT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST(AuthLogicAstTraversingVisitorTest, SimpleTraversalTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: raksha::ir::auth_logic::PrincipalNameCollectorVisitor::GetDefaultValue
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::btree_set<std::string>
    signature: absl::btree_set<std::string> GetDefaultValue() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::btree_set<std::string>::merge
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:39,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - acc
    - child_result
    argTypes:
    - absl::btree_set<std::string>
    - absl::btree_set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: raksha::ir::auth_logic::PrincipalNameCollectorVisitor::CombineResult
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    - absl::btree_set<std::string>::merge
    linkageType: ''
    returnType: absl::btree_set<std::string>
    signature: "absl::btree_set<std::string> CombineResult(\n      absl::btree_set<std::string>
      acc,\n      absl::btree_set<std::string> child_result) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' principal'
    argTypes:
    - Principal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: raksha::ir::auth_logic::PrincipalNameCollectorVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: absl::btree_set<std::string>
    signature: absl::btree_set<std::string> PreVisit(const Principal& principal) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:49,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:50,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:51,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:51,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:51,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:51,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:53,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:54,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:55,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:56,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:56,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:56,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:58,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:59,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:60,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:60,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:60,1
    - Dst: CanActAs
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:60,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:60,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:61,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:63,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:63,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:63,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:64,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 65
    functionName: raksha::ir::auth_logic::BuildTestProgram1
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 1
    functionsReached:
    - Principal
    - Fact
    - Assertion
    - CanActAs
    - SaysAssertion
    - BaseFact
    - std::move
    - raksha::ir::datalog::Predicate::Predicate
    - Program
    linkageType: ''
    returnType: Program
    signature: Program BuildTestProgram1()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::BuildTestProgram1
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:68,1
    - Dst: Program::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Program::Accept
    - EXPECT_EQ
    - raksha::ir::auth_logic::BuildTestProgram1
    linkageType: ''
    returnType: void
    signature: void TEST(AuthLogicAstTraversingVisitorTest, PrincipalNameCollectorTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - traversal_type
    argTypes:
    - TraversalType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::TraversalOrderVisitor
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TraversalOrderVisitor(TraversalType traversal_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:94,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' prin'
    argTypes:
    - Principal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Principal& prin) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' prin'
    - result
    argTypes:
    - Principal
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Principal& prin, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:103,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' attrib'
    argTypes:
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Attribute& attrib) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' attrib'
    - result
    argTypes:
    - Attribute
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Attribute& attrib, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:112,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' canActAs'
    argTypes:
    - CanActAs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const CanActAs& canActAs) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' canActAs'
    - result
    argTypes:
    - CanActAs
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const CanActAs& canActAs, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:121,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' baseFact'
    argTypes:
    - BaseFact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const BaseFact& baseFact) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' baseFact'
    - result
    argTypes:
    - BaseFact
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const BaseFact& baseFact, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:130,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' fact'
    argTypes:
    - Fact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Fact& fact) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' fact'
    - result
    argTypes:
    - Fact
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Fact& fact, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:139,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' condAssertion'
    argTypes:
    - ConditionalAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const ConditionalAssertion& condAssertion) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' condAssertion'
    - result
    argTypes:
    - ConditionalAssertion
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: "Unit PostVisit(const ConditionalAssertion& condAssertion,\n                 Unit
      result) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:149,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' assertion'
    argTypes:
    - Assertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Assertion& assertion) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' assertion'
    - result
    argTypes:
    - Assertion
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Assertion& assertion, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:158,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' saysAssertion'
    argTypes:
    - SaysAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const SaysAssertion& saysAssertion) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' saysAssertion'
    - result
    argTypes:
    - SaysAssertion
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const SaysAssertion& saysAssertion, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:167,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' query'
    argTypes:
    - Query
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Query& query) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' query'
    - result
    argTypes:
    - Query
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Query& query, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:176,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' program'
    argTypes:
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Program& program) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' program'
    - result
    argTypes:
    - Program
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Program& program, Unit result) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: '& nodes() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<AstNodeVariantType>
    signature: std::vector<AstNodeVariantType> & nodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Program::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:220,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:221,1
    - Dst: TraversalOrderVisitor::nodes
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:221,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:222,1
    - Dst: Program::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:229,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:230,1
    - Dst: TraversalOrderVisitor::nodes
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:230,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:231,1
    - Dst: ConditionalAssertion::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:246,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:247,1
    - Dst: TraversalOrderVisitor::nodes
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:248,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:249,1
    - Dst: ConditionalAssertion::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:253,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:254,1
    - Dst: TraversalOrderVisitor::nodes
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:255,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:256,1
    - Dst: CanActAs::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:260,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:261,1
    - Dst: TraversalOrderVisitor::nodes
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:262,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 264
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Program::Accept
    - CanActAs::Accept
    - testing::ElementsAre
    - ConditionalAssertion::Accept
    - TraversalOrderVisitor::nodes
    - EXPECT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST(AuthLogicAstTraversingVisitorTest, SimpleTraversalTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: raksha::ir::auth_logic::PrincipalNameCollectorVisitor::GetDefaultValue
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::btree_set<std::string>
    signature: absl::btree_set<std::string> GetDefaultValue() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::btree_set<std::string>::merge
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:39,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - acc
    - child_result
    argTypes:
    - absl::btree_set<std::string>
    - absl::btree_set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: raksha::ir::auth_logic::PrincipalNameCollectorVisitor::CombineResult
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    - absl::btree_set<std::string>::merge
    linkageType: ''
    returnType: absl::btree_set<std::string>
    signature: "absl::btree_set<std::string> CombineResult(\n      absl::btree_set<std::string>
      acc,\n      absl::btree_set<std::string> child_result) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' principal'
    argTypes:
    - Principal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: raksha::ir::auth_logic::PrincipalNameCollectorVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: absl::btree_set<std::string>
    signature: absl::btree_set<std::string> PreVisit(const Principal& principal) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:49,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:50,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:51,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:51,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:51,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:51,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:53,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:54,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:55,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:56,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:56,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:56,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:58,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:59,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:60,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:60,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:60,1
    - Dst: CanActAs
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:60,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:60,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:61,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:63,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:63,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:63,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:64,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 65
    functionName: raksha::ir::auth_logic::BuildTestProgram1
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 2
    functionsReached:
    - Principal
    - Fact
    - Assertion
    - CanActAs
    - SaysAssertion
    - BaseFact
    - std::move
    - raksha::ir::datalog::Predicate::Predicate
    - Program
    linkageType: ''
    returnType: Program
    signature: Program BuildTestProgram1()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::BuildTestProgram1
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:68,1
    - Dst: Program::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Program::Accept
    - EXPECT_EQ
    - raksha::ir::auth_logic::BuildTestProgram1
    linkageType: ''
    returnType: void
    signature: void TEST(AuthLogicAstTraversingVisitorTest, PrincipalNameCollectorTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - traversal_type
    argTypes:
    - TraversalType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::TraversalOrderVisitor
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TraversalOrderVisitor(TraversalType traversal_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:94,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' prin'
    argTypes:
    - Principal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Principal& prin) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' prin'
    - result
    argTypes:
    - Principal
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Principal& prin, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:103,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' attrib'
    argTypes:
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Attribute& attrib) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' attrib'
    - result
    argTypes:
    - Attribute
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Attribute& attrib, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:112,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' canActAs'
    argTypes:
    - CanActAs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const CanActAs& canActAs) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' canActAs'
    - result
    argTypes:
    - CanActAs
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const CanActAs& canActAs, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:121,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' baseFact'
    argTypes:
    - BaseFact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const BaseFact& baseFact) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' baseFact'
    - result
    argTypes:
    - BaseFact
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const BaseFact& baseFact, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:130,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' fact'
    argTypes:
    - Fact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Fact& fact) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' fact'
    - result
    argTypes:
    - Fact
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Fact& fact, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:139,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' condAssertion'
    argTypes:
    - ConditionalAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const ConditionalAssertion& condAssertion) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' condAssertion'
    - result
    argTypes:
    - ConditionalAssertion
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: "Unit PostVisit(const ConditionalAssertion& condAssertion,\n                 Unit
      result) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:149,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' assertion'
    argTypes:
    - Assertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Assertion& assertion) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' assertion'
    - result
    argTypes:
    - Assertion
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Assertion& assertion, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:158,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' saysAssertion'
    argTypes:
    - SaysAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const SaysAssertion& saysAssertion) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' saysAssertion'
    - result
    argTypes:
    - SaysAssertion
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const SaysAssertion& saysAssertion, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:167,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' query'
    argTypes:
    - Query
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Query& query) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' query'
    - result
    argTypes:
    - Query
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Query& query, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:176,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' program'
    argTypes:
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Program& program) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' program'
    - result
    argTypes:
    - Program
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Program& program, Unit result) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: '& nodes() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<AstNodeVariantType>
    signature: std::vector<AstNodeVariantType> & nodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Program::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:220,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:221,1
    - Dst: TraversalOrderVisitor::nodes
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:221,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:222,1
    - Dst: Program::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:229,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:230,1
    - Dst: TraversalOrderVisitor::nodes
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:230,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:231,1
    - Dst: ConditionalAssertion::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:246,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:247,1
    - Dst: TraversalOrderVisitor::nodes
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:248,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:249,1
    - Dst: ConditionalAssertion::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:253,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:254,1
    - Dst: TraversalOrderVisitor::nodes
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:255,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:256,1
    - Dst: CanActAs::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:260,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:261,1
    - Dst: TraversalOrderVisitor::nodes
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:262,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 264
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Program::Accept
    - CanActAs::Accept
    - testing::ElementsAre
    - ConditionalAssertion::Accept
    - TraversalOrderVisitor::nodes
    - EXPECT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST(AuthLogicAstTraversingVisitorTest, SimpleTraversalTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: raksha::ir::auth_logic::PrincipalNameCollectorVisitor::GetDefaultValue
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::btree_set<std::string>
    signature: absl::btree_set<std::string> GetDefaultValue() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::btree_set<std::string>::merge
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:39,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - acc
    - child_result
    argTypes:
    - absl::btree_set<std::string>
    - absl::btree_set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: raksha::ir::auth_logic::PrincipalNameCollectorVisitor::CombineResult
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    - absl::btree_set<std::string>::merge
    linkageType: ''
    returnType: absl::btree_set<std::string>
    signature: "absl::btree_set<std::string> CombineResult(\n      absl::btree_set<std::string>
      acc,\n      absl::btree_set<std::string> child_result) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' principal'
    argTypes:
    - Principal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: raksha::ir::auth_logic::PrincipalNameCollectorVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: absl::btree_set<std::string>
    signature: absl::btree_set<std::string> PreVisit(const Principal& principal) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:49,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:50,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:51,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:51,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:51,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:51,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:53,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:54,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:55,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:56,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:56,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:56,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:58,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:59,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:60,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:60,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:60,1
    - Dst: CanActAs
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:60,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:60,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:61,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:63,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:63,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:63,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:64,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 65
    functionName: raksha::ir::auth_logic::BuildTestProgram1
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 3
    functionsReached:
    - Principal
    - Fact
    - Assertion
    - CanActAs
    - SaysAssertion
    - BaseFact
    - std::move
    - raksha::ir::datalog::Predicate::Predicate
    - Program
    linkageType: ''
    returnType: Program
    signature: Program BuildTestProgram1()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::BuildTestProgram1
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:68,1
    - Dst: Program::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Program::Accept
    - EXPECT_EQ
    - raksha::ir::auth_logic::BuildTestProgram1
    linkageType: ''
    returnType: void
    signature: void TEST(AuthLogicAstTraversingVisitorTest, PrincipalNameCollectorTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 1
    argNames:
    - traversal_type
    argTypes:
    - TraversalType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::TraversalOrderVisitor
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TraversalOrderVisitor(TraversalType traversal_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:94,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' prin'
    argTypes:
    - Principal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Principal& prin) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' prin'
    - result
    argTypes:
    - Principal
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Principal& prin, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:103,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' attrib'
    argTypes:
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Attribute& attrib) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' attrib'
    - result
    argTypes:
    - Attribute
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Attribute& attrib, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:112,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' canActAs'
    argTypes:
    - CanActAs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const CanActAs& canActAs) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' canActAs'
    - result
    argTypes:
    - CanActAs
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const CanActAs& canActAs, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:121,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' baseFact'
    argTypes:
    - BaseFact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const BaseFact& baseFact) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' baseFact'
    - result
    argTypes:
    - BaseFact
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const BaseFact& baseFact, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:130,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' fact'
    argTypes:
    - Fact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Fact& fact) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' fact'
    - result
    argTypes:
    - Fact
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Fact& fact, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:139,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' condAssertion'
    argTypes:
    - ConditionalAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const ConditionalAssertion& condAssertion) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' condAssertion'
    - result
    argTypes:
    - ConditionalAssertion
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: "Unit PostVisit(const ConditionalAssertion& condAssertion,\n                 Unit
      result) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:149,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' assertion'
    argTypes:
    - Assertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Assertion& assertion) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' assertion'
    - result
    argTypes:
    - Assertion
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Assertion& assertion, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:158,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' saysAssertion'
    argTypes:
    - SaysAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const SaysAssertion& saysAssertion) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' saysAssertion'
    - result
    argTypes:
    - SaysAssertion
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const SaysAssertion& saysAssertion, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:167,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' query'
    argTypes:
    - Query
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Query& query) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' query'
    - result
    argTypes:
    - Query
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Query& query, Unit result) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:176,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' program'
    argTypes:
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Unit
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PreVisit(const Program& program) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' program'
    - result
    argTypes:
    - Program
    - Unit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: Unit
    signature: Unit PostVisit(const Program& program, Unit result) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: '& nodes() const'
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<AstNodeVariantType>
    signature: std::vector<AstNodeVariantType> & nodes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Program::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:220,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:221,1
    - Dst: TraversalOrderVisitor::nodes
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:221,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:222,1
    - Dst: Program::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:229,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:230,1
    - Dst: TraversalOrderVisitor::nodes
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:230,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:231,1
    - Dst: ConditionalAssertion::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:246,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:247,1
    - Dst: TraversalOrderVisitor::nodes
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:248,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:249,1
    - Dst: ConditionalAssertion::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:253,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:254,1
    - Dst: TraversalOrderVisitor::nodes
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:255,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:256,1
    - Dst: CanActAs::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:260,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:261,1
    - Dst: TraversalOrderVisitor::nodes
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:262,1
    - Dst: testing::ElementsAre
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 264
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    functionUses: 0
    functionsReached:
    - Program::Accept
    - CanActAs::Accept
    - testing::ElementsAre
    - ConditionalAssertion::Accept
    - TraversalOrderVisitor::nodes
    - EXPECT_THAT
    linkageType: ''
    returnType: void
    signature: void TEST(AuthLogicAstTraversingVisitorTest, SimpleTraversalTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:33,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:34,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:35,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:36,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:39,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:40,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:40,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:41,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:41,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 44
    functionName: raksha::ir::auth_logic::BuildTestProgram1
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc
    functionUses: 4
    functionsReached:
    - Fact
    - Principal
    - Assertion
    - BaseFact
    - Program
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - raksha::ir::datalog::Predicate::Predicate
    - raksha::ir::datalog::Argument::Argument
    linkageType: ''
    returnType: Program
    signature: Program BuildTestProgram1()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:59,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:60,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:61,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:62,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:67,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:67,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:71,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:71,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:75,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:76,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:81,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:81,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:84,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:85,1
    - Dst: ConditionalAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:85,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:86,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:87,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:87,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:89,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:89,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:93,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:94,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:94,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:94,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:94,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:97,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:98,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:99,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:99,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:99,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 104
    functionName: raksha::ir::auth_logic::BuildTestProgram1Expected
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - ConditionalAssertion
    - Principal
    - Fact
    - Assertion
    - BaseFact
    - Program
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - raksha::ir::datalog::Predicate::Predicate
    - raksha::ir::datalog::Argument::Argument
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: Program
    signature: Program BuildTestProgram1Expected()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:116,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:117,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:118,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:118,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:121,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:122,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:122,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:122,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:123,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:123,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 127
    functionName: raksha::ir::auth_logic::BuildTestProgram2
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc
    functionUses: 0
    functionsReached:
    - Principal
    - Fact
    - Assertion
    - BaseFact
    - Program
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - raksha::ir::datalog::Predicate::Predicate
    - raksha::ir::datalog::Argument::Argument
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: Program
    signature: Program BuildTestProgram2()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:148,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:149,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:150,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:150,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:155,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:155,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:159,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:159,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:163,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:163,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:166,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:167,1
    - Dst: ConditionalAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:167,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:168,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:168,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:169,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:169,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:172,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:172,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:176,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:177,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:178,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:178,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:178,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:181,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:182,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:182,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:182,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:182,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:186,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:187,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:187,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:188,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:188,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:191,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:192,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:193,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:193,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:193,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:196,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:197,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:197,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:197,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:197,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:201,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:202,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:202,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:203,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:203,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 211
    functionName: raksha::ir::auth_logic::BuildTestProgram2Expected
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - ConditionalAssertion
    - Principal
    - Fact
    - Assertion
    - BaseFact
    - Program
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - raksha::ir::datalog::Predicate::Predicate
    - raksha::ir::datalog::Argument::Argument
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: Program
    signature: Program BuildTestProgram2Expected()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:220,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:221,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:224,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:225,1
    - Dst: ConditionalAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:225,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:226,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:226,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:226,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:228,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:228,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 232
    functionName: raksha::ir::auth_logic::BuildTestProgram3
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc
    functionUses: 0
    functionsReached:
    - ConditionalAssertion
    - Principal
    - Fact
    - Assertion
    - BaseFact
    - Program
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - raksha::ir::datalog::Predicate::Predicate
    - raksha::ir::datalog::Argument::Argument
    linkageType: ''
    returnType: Program
    signature: Program BuildTestProgram3()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:244,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:245,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:250,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:250,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:254,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:254,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:258,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:258,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:261,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:262,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:263,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:263,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:263,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:266,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:267,1
    - Dst: ConditionalAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:267,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:268,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:268,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:268,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:271,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:272,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:273,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:273,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 278
    functionName: raksha::ir::auth_logic::BuildTestProgram3Expected
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - ConditionalAssertion
    - Principal
    - Fact
    - Assertion
    - BaseFact
    - Program
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - raksha::ir::datalog::Predicate::Predicate
    - raksha::ir::datalog::Argument::Argument
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: Program
    signature: Program BuildTestProgram3Expected()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:290,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:292,1
    - Dst: relation_declarations
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:293,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:294,1
    - Dst: relation_declarations
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:294,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:296,1
    - Dst: says_assertions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:296,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:297,1
    - Dst: says_assertions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:297,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:299,1
    - Dst: queries
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:299,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:300,1
    - Dst: queries
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 301
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc
    functionUses: 0
    functionsReached:
    - queries
    - UnorderedElementsAreArray
    - EXPECT_THAT
    - relation_declarations
    - says_assertions
    - GetParam
    linkageType: ''
    returnType: void
    signature: "void TEST_P(ProgramDebugStringEquivalenceTest,\n       SimpleProgramDebugStringEquivalenceTest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:33,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:34,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:35,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:36,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:39,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:40,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:40,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:41,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:41,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 44
    functionName: raksha::ir::auth_logic::BuildTestProgram1
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc
    functionUses: 4
    functionsReached:
    - Fact
    - Principal
    - Assertion
    - BaseFact
    - Program
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - raksha::ir::datalog::Predicate::Predicate
    - raksha::ir::datalog::Argument::Argument
    linkageType: ''
    returnType: Program
    signature: Program BuildTestProgram1()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:59,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:60,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:61,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:62,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:67,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:67,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:71,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:71,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:75,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:76,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:81,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:81,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:84,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:85,1
    - Dst: ConditionalAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:85,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:86,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:87,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:87,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:89,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:89,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:93,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:94,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:94,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:94,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:94,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:97,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:98,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:99,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:99,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:99,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 104
    functionName: raksha::ir::auth_logic::BuildTestProgram1Expected
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - ConditionalAssertion
    - Principal
    - Fact
    - Assertion
    - BaseFact
    - Program
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - raksha::ir::datalog::Predicate::Predicate
    - raksha::ir::datalog::Argument::Argument
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: Program
    signature: Program BuildTestProgram1Expected()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:116,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:117,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:118,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:118,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:121,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:122,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:122,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:122,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:123,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:123,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 127
    functionName: raksha::ir::auth_logic::BuildTestProgram2
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc
    functionUses: 0
    functionsReached:
    - Principal
    - Fact
    - Assertion
    - BaseFact
    - Program
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - raksha::ir::datalog::Predicate::Predicate
    - raksha::ir::datalog::Argument::Argument
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: Program
    signature: Program BuildTestProgram2()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:148,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:149,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:150,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:150,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:155,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:155,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:159,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:159,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:163,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:163,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:166,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:167,1
    - Dst: ConditionalAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:167,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:168,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:168,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:169,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:169,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:172,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:172,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:176,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:177,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:178,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:178,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:178,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:181,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:182,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:182,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:182,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:182,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:186,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:187,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:187,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:188,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:188,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:191,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:192,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:193,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:193,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:193,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:196,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:197,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:197,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:197,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:197,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:201,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:202,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:202,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:203,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:203,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 211
    functionName: raksha::ir::auth_logic::BuildTestProgram2Expected
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - ConditionalAssertion
    - Principal
    - Fact
    - Assertion
    - BaseFact
    - Program
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - raksha::ir::datalog::Predicate::Predicate
    - raksha::ir::datalog::Argument::Argument
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: Program
    signature: Program BuildTestProgram2Expected()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:220,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:221,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:224,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:225,1
    - Dst: ConditionalAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:225,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:226,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:226,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:226,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:228,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:228,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 232
    functionName: raksha::ir::auth_logic::BuildTestProgram3
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc
    functionUses: 0
    functionsReached:
    - ConditionalAssertion
    - Principal
    - Fact
    - Assertion
    - BaseFact
    - Program
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - raksha::ir::datalog::Predicate::Predicate
    - raksha::ir::datalog::Argument::Argument
    linkageType: ''
    returnType: Program
    signature: Program BuildTestProgram3()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:244,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:245,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:250,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:250,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:254,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:254,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:258,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:258,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:261,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:262,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:263,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:263,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:263,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:266,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:267,1
    - Dst: ConditionalAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:267,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:268,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:268,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:268,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:271,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:272,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:273,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:273,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 278
    functionName: raksha::ir::auth_logic::BuildTestProgram3Expected
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - ConditionalAssertion
    - Principal
    - Fact
    - Assertion
    - BaseFact
    - Program
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - raksha::ir::datalog::Predicate::Predicate
    - raksha::ir::datalog::Argument::Argument
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: Program
    signature: Program BuildTestProgram3Expected()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:290,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:292,1
    - Dst: relation_declarations
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:293,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:294,1
    - Dst: relation_declarations
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:294,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:296,1
    - Dst: says_assertions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:296,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:297,1
    - Dst: says_assertions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:297,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:299,1
    - Dst: queries
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:299,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:300,1
    - Dst: queries
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 301
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc
    functionUses: 0
    functionsReached:
    - queries
    - UnorderedElementsAreArray
    - EXPECT_THAT
    - relation_declarations
    - says_assertions
    - GetParam
    linkageType: ''
    returnType: void
    signature: "void TEST_P(ProgramDebugStringEquivalenceTest,\n       SimpleProgramDebugStringEquivalenceTest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:24,1
    - Dst: raksha::ir::auth_logic::IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:24,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:25,1
    - Dst: raksha::ir::auth_logic::IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:25,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:26,1
    - Dst: raksha::ir::auth_logic::IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:26,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:27,1
    - Dst: raksha::ir::auth_logic::IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:27,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:28,1
    - Dst: raksha::ir::auth_logic::IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:28,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:29,1
    - Dst: raksha::ir::auth_logic::IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::auth_logic::IsNameConstant
    linkageType: ''
    returnType: void
    signature: void TEST(IsNameConstantTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:24,1
    - Dst: raksha::ir::auth_logic::IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:24,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:25,1
    - Dst: raksha::ir::auth_logic::IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:25,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:26,1
    - Dst: raksha::ir::auth_logic::IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:26,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:27,1
    - Dst: raksha::ir::auth_logic::IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:27,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:28,1
    - Dst: raksha::ir::auth_logic::IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:28,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:29,1
    - Dst: raksha::ir::auth_logic::IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::auth_logic::IsNameConstant
    linkageType: ''
    returnType: void
    signature: void TEST(IsNameConstantTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:25,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:28,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:29,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:30,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:30,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:30,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:35,1
    - Dst: TypeEnvironment::GetTypingOrFatal
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:35,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:37,1
    - Dst: TypeEnvironment::GetTypingOrFatal
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:37,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 39
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - Principal
    - Fact
    - Assertion
    - BaseFact
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - raksha::ir::datalog::Predicate::Predicate
    - TypeEnvironment::GetTypingOrFatal
    linkageType: ''
    returnType: void
    signature: void TEST(TypeEnvironmentTests, GetTypingTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:45,1
    - Dst: TypeEnvironment::GetTypingOrFatal
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - TypeEnvironment::GetTypingOrFatal
    linkageType: ''
    returnType: void
    signature: void TEST(TypeEnvironmentTests, FatalGetTypingTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:50,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:53,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:54,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:55,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:55,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:55,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:58,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:61,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:62,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:63,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:63,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 71
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - Principal
    - Fact
    - Assertion
    - BaseFact
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - raksha::ir::datalog::Predicate::Predicate
    linkageType: ''
    returnType: void
    signature: void TEST(TypeEnvironmentTests, AddTypingTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:75,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:78,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:79,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:80,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:80,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:80,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:84,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:85,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:86,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:86,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 94
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment_test.cc
    functionUses: 0
    functionsReached:
    - Principal
    - Fact
    - Assertion
    - BaseFact
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - raksha::ir::datalog::Predicate::Predicate
    linkageType: ''
    returnType: void
    signature: void TEST(TypeEnvironmentTests, AddTypingTest2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:25,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:28,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:29,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:30,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:30,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:30,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:35,1
    - Dst: TypeEnvironment::GetTypingOrFatal
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:35,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:37,1
    - Dst: TypeEnvironment::GetTypingOrFatal
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:37,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 39
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - Principal
    - Fact
    - Assertion
    - BaseFact
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - raksha::ir::datalog::Predicate::Predicate
    - TypeEnvironment::GetTypingOrFatal
    linkageType: ''
    returnType: void
    signature: void TEST(TypeEnvironmentTests, GetTypingTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:45,1
    - Dst: TypeEnvironment::GetTypingOrFatal
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - TypeEnvironment::GetTypingOrFatal
    linkageType: ''
    returnType: void
    signature: void TEST(TypeEnvironmentTests, FatalGetTypingTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:50,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:53,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:54,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:55,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:55,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:55,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:58,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:61,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:62,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:63,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:63,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 71
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - Principal
    - Fact
    - Assertion
    - BaseFact
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - raksha::ir::datalog::Predicate::Predicate
    linkageType: ''
    returnType: void
    signature: void TEST(TypeEnvironmentTests, AddTypingTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:75,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:78,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:79,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:80,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:80,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:80,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:84,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:85,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:86,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:86,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/type_environment_test.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 94
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment_test.cc
    functionUses: 0
    functionsReached:
    - Principal
    - Fact
    - Assertion
    - BaseFact
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - raksha::ir::datalog::Predicate::Predicate
    linkageType: ''
    returnType: void
    signature: void TEST(TypeEnvironmentTests, AddTypingTest2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(AstEqualityTestSuite, Test1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(AstEqualityTestSuite, Test2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(AstEqualityTestSuite, Test3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(AstEqualityTestSuite, Test4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(AstEqualityTestSuite, Test5)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(AstEqualityTestSuite, Test6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(AstEqualityTestSuite, Test7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:69,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(PrincipalEqTest, PrincipalEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AttributeEqTest, AttributeEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:128,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(CanActAsEqTest, CanActAsEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:156,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 158
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(BaseFactEqTest, BaseFactEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:180,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:184,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 186
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(FactEqTest, FactEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:208,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 214
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(ConditionalAssertionEqTest, ConditionalAssertionEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:231,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:235,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 237
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AssertionEqTest, AssertionEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:256,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:260,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 262
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(SaysAssertionEqTest, SaysAssertionEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:285,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:289,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 291
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(QueryEqTest, QueryEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:312,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:316,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 318
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(ProgramEqTest, ProgramEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(AstEqualityTestSuite, Test1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(AstEqualityTestSuite, Test2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(AstEqualityTestSuite, Test3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(AstEqualityTestSuite, Test4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(AstEqualityTestSuite, Test5)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(AstEqualityTestSuite, Test6)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(AstEqualityTestSuite, Test7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:69,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(PrincipalEqTest, PrincipalEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AttributeEqTest, AttributeEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:128,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(CanActAsEqTest, CanActAsEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:156,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 158
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(BaseFactEqTest, BaseFactEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:180,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:184,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 186
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(FactEqTest, FactEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:208,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 214
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(ConditionalAssertionEqTest, ConditionalAssertionEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:231,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:235,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 237
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(AssertionEqTest, AssertionEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:256,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:260,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 262
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(SaysAssertionEqTest, SaysAssertionEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:285,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:289,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 291
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(QueryEqTest, QueryEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:312,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:316,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_equality_test.cc:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 318
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(ProgramEqTest, ProgramEqTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrReplaceAll
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - predicate_argument
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 0
    functionsReached:
    - absl::StrReplaceAll
    linkageType: ''
    returnType: std::string
    signature: "std::string SanitizeMultilineStringForPredicateArgument(\n    const
      std::string predicate_argument)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:53,1
    - Dst: STRING_LITERAL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' principal_context'
    argTypes:
    - AuthLogicParser::PrincipalContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: raksha::ir::auth_logic::ConstructPrincipal
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 0
    functionsReached:
    - Principal
    - STRING_LITERAL
    linkageType: ''
    returnType: Principal
    signature: "Principal ConstructPrincipal(\n    AuthLogicParser::PrincipalContext&
      principal_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:58,1
    - Dst: pred_arg
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:59,1
    - Dst: dynamic_cast<AuthLogicParser::MultilineConstantContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:61,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:62,1
    - Dst: raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:63,1
    - Dst: auto*::getText
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:64,1
    - Dst: getText
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:65,1
    - Dst: NEG
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:67,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:70,1
    - Dst: VARIABLE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:70,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' predicate_context'
    argTypes:
    - AuthLogicParser::PredicateContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 72
    functionName: raksha::ir::auth_logic::ConstructPredicate
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - NEG
    - utils::MapIter<std::string>
    - auto*::getText
    - pred_arg
    - raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
    - dynamic_cast<AuthLogicParser::MultilineConstantContext*>
    - raksha::ir::datalog::Predicate::Predicate
    - std::move
    - VARIABLE
    - getText
    linkageType: ''
    returnType: datalog::Predicate
    signature: "datalog::Predicate ConstructPredicate(\n    AuthLogicParser::PredicateContext&
      predicate_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::PredphraseContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:78,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:80,1
    - Dst: Attribute
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:80,1
    - Dst: raksha::ir::auth_logic::ConstructPredicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:82,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:82,1
    - Dst: auto*::predicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:82,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:85,1
    - Dst: dynamic_cast<AuthLogicParser::ActsAsPhraseContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:85,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:87,1
    - Dst: CanActAs
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:87,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:89,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:89,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - left_principal
    - ' verbphrase_context'
    argTypes:
    - Principal
    - AuthLogicParser::VerbphraseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 90
    functionName: raksha::ir::auth_logic::ConstructVerbphrase
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - principal
    - raksha::ir::auth_logic::ConstructPrincipal
    - CanActAs
    - auto*::predicate
    - BaseFact
    - Attribute
    - raksha::ir::auth_logic::ConstructPredicate
    - dynamic_cast<AuthLogicParser::PredphraseContext*>
    - dynamic_cast<AuthLogicParser::ActsAsPhraseContext*>
    linkageType: ''
    returnType: BaseFact
    signature: "BaseFact ConstructVerbphrase(\n    Principal left_principal,\n    AuthLogicParser::VerbphraseContext&
      verbphrase_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::PrinFactContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:95,1
    - Dst: raksha::ir::auth_logic::ConstructVerbphrase
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:96,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:97,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:97,1
    - Dst: auto*::principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:97,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:98,1
    - Dst: auto*::verbphrase
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:98,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:101,1
    - Dst: dynamic_cast<AuthLogicParser::PredFactContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:101,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:103,1
    - Dst: raksha::ir::auth_logic::ConstructPredicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:104,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:104,1
    - Dst: predicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' flat_fact_context'
    argTypes:
    - AuthLogicParser::FlatFactContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: raksha::ir::auth_logic::ConstructFlatFact
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - auto*::principal
    - raksha::ir::auth_logic::ConstructPrincipal
    - dynamic_cast<AuthLogicParser::PrinFactContext*>
    - raksha::ir::auth_logic::ConstructVerbphrase
    - BaseFact
    - raksha::ir::auth_logic::ConstructPredicate
    - dynamic_cast<AuthLogicParser::PredFactContext*>
    - predicate
    - auto*::verbphrase
    linkageType: ''
    returnType: BaseFact
    signature: "BaseFact ConstructFlatFact(\n    AuthLogicParser::FlatFactContext&
      flat_fact_context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::FlatFactRvalueContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:110,1
    - Dst: raksha::ir::auth_logic::ConstructFlatFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:112,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:113,1
    - Dst: auto*::flatFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:113,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:115,1
    - Dst: dynamic_cast<AuthLogicParser::BinopRvalueContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:116,1
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:117,1
    - Dst: pred_arg
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:118,1
    - Dst: dynamic_cast<AuthLogicParser::MultilineConstantContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:120,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:121,1
    - Dst: raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:122,1
    - Dst: auto*::getText
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:123,1
    - Dst: getText
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:124,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:126,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:126,1
    - Dst: binop
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:126,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' rvalue_context'
    argTypes:
    - AuthLogicParser::RvalueContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 107
    functionDepth: 4
    functionLinenumber: 107
    functionLinenumberEnd: 129
    functionName: raksha::ir::auth_logic::ConstructRvalue
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - utils::MapIter<std::string>
    - dynamic_cast<AuthLogicParser::BinopRvalueContext*>
    - raksha::ir::auth_logic::ConstructFlatFact
    - pred_arg
    - auto*::getText
    - raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
    - binop
    - BaseFact
    - dynamic_cast<AuthLogicParser::MultilineConstantContext*>
    - raksha::ir::datalog::Predicate::Predicate
    - std::move
    - dynamic_cast<AuthLogicParser::FlatFactRvalueContext*>
    - getText
    - auto*::flatFact
    linkageType: ''
    returnType: BaseFact
    signature: "BaseFact ConstructRvalue(\n    AuthLogicParser::RvalueContext& rvalue_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::FlatFactFactContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:138,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:140,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:141,1
    - Dst: raksha::ir::auth_logic::ConstructFlatFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:142,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:142,1
    - Dst: auto*::flatFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:142,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:144,1
    - Dst: dynamic_cast<AuthLogicParser::CanSayFactContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:145,1
    - Dst: std::forward_list<Principal>::push_front
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:146,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:147,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:147,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:147,1
    - Dst: raksha::ir::auth_logic::ConstructFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:148,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:148,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:149,1
    - Dst: fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - delegation_chain
    - ' fact_context'
    argTypes:
    - std::forward_list<Principal>
    - AuthLogicParser::FactContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 150
    functionName: raksha::ir::auth_logic::ConstructFact
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 1
    functionsReached:
    - ABSL_DIE_IF_NULL
    - auto*::flatFact
    - principal
    - dynamic_cast<AuthLogicParser::FlatFactFactContext*>
    - Fact
    - std::forward_list<Principal>::push_front
    - raksha::ir::auth_logic::ConstructPrincipal
    - fact
    - raksha::ir::auth_logic::ConstructFact
    - std::move
    - dynamic_cast<AuthLogicParser::CanSayFactContext*>
    - raksha::ir::auth_logic::ConstructFlatFact
    linkageType: ''
    returnType: Fact
    signature: "Fact ConstructFact(std::forward_list<Principal> delegation_chain,\n
      \                         AuthLogicParser::FactContext& fact_context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::NumberTypeContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:154,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:156,1
    - Dst: dynamic_cast<AuthLogicParser::PrincipalTypeContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:157,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:159,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:162,1
    - Dst: dynamic_cast<AuthLogicParser::CustomTypeContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:162,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:164,1
    - Dst: VARIABLE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' auth_logic_type_context'
    argTypes:
    - AuthLogicParser::AuthLogicTypeContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 166
    functionName: raksha::ir::auth_logic::ConstructArgumentType
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - dynamic_cast<AuthLogicParser::CustomTypeContext*>
    - dynamic_cast<AuthLogicParser::PrincipalTypeContext*>
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - VARIABLE
    - dynamic_cast<AuthLogicParser::NumberTypeContext*>
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: datalog::ArgumentType
    signature: "datalog::ArgumentType ConstructArgumentType(\n    AuthLogicParser::AuthLogicTypeContext&
      auth_logic_type_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:178,1
    - Dst: authLogicType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:178,1
    - Dst: authLogicType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:179,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:181,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:181,1
    - Dst: VARIABLE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:182,1
    - Dst: raksha::ir::auth_logic::ConstructArgumentType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:183,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:184,1
    - Dst: authLogicType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:184,1
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:186,1
    - Dst: VARIABLE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:187,1
    - Dst: ATTRIBUTE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:188,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' relation_declaration_context'
    argTypes:
    - AuthLogicParser::RelationDeclarationContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 190
    functionName: raksha::ir::auth_logic::ConstructRelationDeclaration
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - authLogicType
    - std::vector::push_back
    - ATTRIBUTE
    - std::vector::reserve
    - raksha::ir::datalog::RelationDeclaration::RelationDeclaration
    - std::move
    - raksha::ir::datalog::Argument::Argument
    - VARIABLE
    - raksha::ir::auth_logic::ConstructArgumentType
    linkageType: ''
    returnType: datalog::RelationDeclaration
    signature: "datalog::RelationDeclaration ConstructRelationDeclaration(\n    AuthLogicParser::RelationDeclarationContext&
      relation_declaration_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Query
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:193,1
    - Dst: VARIABLE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:193,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:194,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:194,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:194,1
    - Dst: raksha::ir::auth_logic::ConstructFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:195,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:195,1
    - Dst: fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' query_context'
    argTypes:
    - AuthLogicParser::QueryContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 5
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: raksha::ir::auth_logic::ConstructQuery
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 0
    functionsReached:
    - principal
    - ABSL_DIE_IF_NULL
    - raksha::ir::auth_logic::ConstructPrincipal
    - fact
    - Query
    - raksha::ir::auth_logic::ConstructFact
    - VARIABLE
    linkageType: ''
    returnType: Query
    signature: Query ConstructQuery(AuthLogicParser::QueryContext& query_context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::FactAssertionContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:201,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:203,1
    - Dst: raksha::ir::auth_logic::ConstructFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:204,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:204,1
    - Dst: auto*::fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:204,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:207,1
    - Dst: dynamic_cast<AuthLogicParser::HornClauseAssertionContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:207,1
    - Dst: utils::MapIter<BaseFact>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:209,1
    - Dst: rvalue
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:210,1
    - Dst: raksha::ir::auth_logic::ConstructRvalue
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:212,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:212,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:214,1
    - Dst: ConditionalAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:214,1
    - Dst: raksha::ir::auth_logic::ConstructFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:215,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:215,1
    - Dst: fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:215,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' assertion_context'
    argTypes:
    - AuthLogicParser::AssertionContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 198
    functionDepth: 5
    functionLinenumber: 198
    functionLinenumberEnd: 217
    functionName: raksha::ir::auth_logic::ConstructAssertion
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - utils::MapIter<BaseFact>
    - ConditionalAssertion
    - raksha::ir::auth_logic::ConstructRvalue
    - fact
    - Assertion
    - raksha::ir::auth_logic::ConstructFact
    - dynamic_cast<AuthLogicParser::FactAssertionContext*>
    - std::move
    - auto*::fact
    - dynamic_cast<AuthLogicParser::HornClauseAssertionContext*>
    - rvalue
    linkageType: ''
    returnType: Assertion
    signature: "Assertion ConstructAssertion(\n    AuthLogicParser::AssertionContext&
      assertion_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::SaysSingleContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:222,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:225,1
    - Dst: raksha::ir::auth_logic::ConstructAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:226,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:226,1
    - Dst: auto*::assertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:226,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:227,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:228,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:228,1
    - Dst: auto*::principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:228,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:229,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:232,1
    - Dst: dynamic_cast<AuthLogicParser::SaysMultiContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:232,1
    - Dst: utils::MapIter<Assertion>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:234,1
    - Dst: assertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:235,1
    - Dst: raksha::ir::auth_logic::ConstructAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:237,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:237,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:239,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:240,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:240,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:240,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' says_assertion_context'
    argTypes:
    - AuthLogicParser::SaysAssertionContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 219
    functionDepth: 6
    functionLinenumber: 219
    functionLinenumberEnd: 242
    functionName: raksha::ir::auth_logic::ConstructSaysAssertion
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ConstructAssertion
    - ABSL_DIE_IF_NULL
    - principal
    - std::vector::push_back
    - raksha::ir::auth_logic::ConstructPrincipal
    - auto*::principal
    - dynamic_cast<AuthLogicParser::SaysSingleContext*>
    - SaysAssertion
    - dynamic_cast<AuthLogicParser::SaysMultiContext*>
    - std::move
    - assertion
    - auto*::assertion
    - utils::MapIter<Assertion>
    linkageType: ''
    returnType: SaysAssertion
    signature: "SaysAssertion ConstructSaysAssertion(\n    AuthLogicParser::SaysAssertionContext&
      says_assertion_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<datalog::RelationDeclaration>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:246,1
    - Dst: relationDeclaration
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:247,1
    - Dst: raksha::ir::auth_logic::ConstructRelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:250,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:251,1
    - Dst: utils::MapIter<SaysAssertion>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:253,1
    - Dst: saysAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:254,1
    - Dst: raksha::ir::auth_logic::ConstructSaysAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:256,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:256,1
    - Dst: utils::MapIter<Query>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:258,1
    - Dst: query
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:259,1
    - Dst: raksha::ir::auth_logic::ConstructQuery
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:261,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:261,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:263,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:263,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:263,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' program_context'
    argTypes:
    - AuthLogicParser::ProgramContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 244
    functionDepth: 7
    functionLinenumber: 244
    functionLinenumberEnd: 265
    functionName: raksha::ir::auth_logic::ConstructProgram
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - raksha::ir::auth_logic::ConstructQuery
    - utils::MapIter<SaysAssertion>
    - utils::MapIter<datalog::RelationDeclaration>
    - query
    - Program
    - std::move
    - raksha::ir::auth_logic::ConstructSaysAssertion
    - raksha::ir::auth_logic::ConstructRelationDeclaration
    - saysAssertion
    - relationDeclaration
    - utils::MapIter<Query>
    linkageType: ''
    returnType: Program
    signature: "Program ConstructProgram(\n    AuthLogicParser::ProgramContext& program_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrReplaceAll
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - predicate_argument
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 2
    functionsReached:
    - absl::StrReplaceAll
    linkageType: ''
    returnType: std::string
    signature: "std::string SanitizeMultilineStringForPredicateArgument(\n    const
      std::string predicate_argument)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:53,1
    - Dst: STRING_LITERAL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' principal_context'
    argTypes:
    - AuthLogicParser::PrincipalContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: raksha::ir::auth_logic::ConstructPrincipal
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 5
    functionsReached:
    - Principal
    - STRING_LITERAL
    linkageType: ''
    returnType: Principal
    signature: "Principal ConstructPrincipal(\n    AuthLogicParser::PrincipalContext&
      principal_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:58,1
    - Dst: pred_arg
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:59,1
    - Dst: dynamic_cast<AuthLogicParser::MultilineConstantContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:61,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:62,1
    - Dst: raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:63,1
    - Dst: auto*::getText
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:64,1
    - Dst: getText
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:65,1
    - Dst: NEG
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:67,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:70,1
    - Dst: VARIABLE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:70,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' predicate_context'
    argTypes:
    - AuthLogicParser::PredicateContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 72
    functionName: raksha::ir::auth_logic::ConstructPredicate
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 2
    functionsReached:
    - ABSL_DIE_IF_NULL
    - NEG
    - utils::MapIter<std::string>
    - auto*::getText
    - pred_arg
    - raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
    - dynamic_cast<AuthLogicParser::MultilineConstantContext*>
    - raksha::ir::datalog::Predicate::Predicate
    - std::move
    - VARIABLE
    - getText
    linkageType: ''
    returnType: datalog::Predicate
    signature: "datalog::Predicate ConstructPredicate(\n    AuthLogicParser::PredicateContext&
      predicate_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::PredphraseContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:78,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:80,1
    - Dst: Attribute
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:80,1
    - Dst: raksha::ir::auth_logic::ConstructPredicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:82,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:82,1
    - Dst: auto*::predicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:82,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:85,1
    - Dst: dynamic_cast<AuthLogicParser::ActsAsPhraseContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:85,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:87,1
    - Dst: CanActAs
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:87,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:89,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:89,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - left_principal
    - ' verbphrase_context'
    argTypes:
    - Principal
    - AuthLogicParser::VerbphraseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 90
    functionName: raksha::ir::auth_logic::ConstructVerbphrase
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 1
    functionsReached:
    - ABSL_DIE_IF_NULL
    - principal
    - raksha::ir::auth_logic::ConstructPrincipal
    - CanActAs
    - auto*::predicate
    - BaseFact
    - Attribute
    - raksha::ir::auth_logic::ConstructPredicate
    - dynamic_cast<AuthLogicParser::PredphraseContext*>
    - dynamic_cast<AuthLogicParser::ActsAsPhraseContext*>
    linkageType: ''
    returnType: BaseFact
    signature: "BaseFact ConstructVerbphrase(\n    Principal left_principal,\n    AuthLogicParser::VerbphraseContext&
      verbphrase_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::PrinFactContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:95,1
    - Dst: raksha::ir::auth_logic::ConstructVerbphrase
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:96,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:97,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:97,1
    - Dst: auto*::principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:97,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:98,1
    - Dst: auto*::verbphrase
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:98,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:101,1
    - Dst: dynamic_cast<AuthLogicParser::PredFactContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:101,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:103,1
    - Dst: raksha::ir::auth_logic::ConstructPredicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:104,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:104,1
    - Dst: predicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' flat_fact_context'
    argTypes:
    - AuthLogicParser::FlatFactContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: raksha::ir::auth_logic::ConstructFlatFact
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 2
    functionsReached:
    - ABSL_DIE_IF_NULL
    - auto*::principal
    - raksha::ir::auth_logic::ConstructPrincipal
    - dynamic_cast<AuthLogicParser::PrinFactContext*>
    - raksha::ir::auth_logic::ConstructVerbphrase
    - BaseFact
    - raksha::ir::auth_logic::ConstructPredicate
    - dynamic_cast<AuthLogicParser::PredFactContext*>
    - predicate
    - auto*::verbphrase
    linkageType: ''
    returnType: BaseFact
    signature: "BaseFact ConstructFlatFact(\n    AuthLogicParser::FlatFactContext&
      flat_fact_context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::FlatFactRvalueContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:110,1
    - Dst: raksha::ir::auth_logic::ConstructFlatFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:112,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:113,1
    - Dst: auto*::flatFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:113,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:115,1
    - Dst: dynamic_cast<AuthLogicParser::BinopRvalueContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:116,1
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:117,1
    - Dst: pred_arg
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:118,1
    - Dst: dynamic_cast<AuthLogicParser::MultilineConstantContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:120,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:121,1
    - Dst: raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:122,1
    - Dst: auto*::getText
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:123,1
    - Dst: getText
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:124,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:126,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:126,1
    - Dst: binop
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:126,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' rvalue_context'
    argTypes:
    - AuthLogicParser::RvalueContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 107
    functionDepth: 4
    functionLinenumber: 107
    functionLinenumberEnd: 129
    functionName: raksha::ir::auth_logic::ConstructRvalue
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 1
    functionsReached:
    - ABSL_DIE_IF_NULL
    - utils::MapIter<std::string>
    - dynamic_cast<AuthLogicParser::BinopRvalueContext*>
    - raksha::ir::auth_logic::ConstructFlatFact
    - pred_arg
    - auto*::getText
    - raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
    - binop
    - BaseFact
    - dynamic_cast<AuthLogicParser::MultilineConstantContext*>
    - raksha::ir::datalog::Predicate::Predicate
    - std::move
    - dynamic_cast<AuthLogicParser::FlatFactRvalueContext*>
    - getText
    - auto*::flatFact
    linkageType: ''
    returnType: BaseFact
    signature: "BaseFact ConstructRvalue(\n    AuthLogicParser::RvalueContext& rvalue_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::FlatFactFactContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:138,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:140,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:141,1
    - Dst: raksha::ir::auth_logic::ConstructFlatFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:142,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:142,1
    - Dst: auto*::flatFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:142,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:144,1
    - Dst: dynamic_cast<AuthLogicParser::CanSayFactContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:145,1
    - Dst: std::forward_list<Principal>::push_front
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:146,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:147,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:147,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:147,1
    - Dst: raksha::ir::auth_logic::ConstructFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:148,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:148,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:149,1
    - Dst: fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - delegation_chain
    - ' fact_context'
    argTypes:
    - std::forward_list<Principal>
    - AuthLogicParser::FactContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 150
    functionName: raksha::ir::auth_logic::ConstructFact
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 4
    functionsReached:
    - ABSL_DIE_IF_NULL
    - auto*::flatFact
    - principal
    - dynamic_cast<AuthLogicParser::FlatFactFactContext*>
    - Fact
    - std::forward_list<Principal>::push_front
    - raksha::ir::auth_logic::ConstructPrincipal
    - fact
    - raksha::ir::auth_logic::ConstructFact
    - std::move
    - dynamic_cast<AuthLogicParser::CanSayFactContext*>
    - raksha::ir::auth_logic::ConstructFlatFact
    linkageType: ''
    returnType: Fact
    signature: "Fact ConstructFact(std::forward_list<Principal> delegation_chain,\n
      \                         AuthLogicParser::FactContext& fact_context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::NumberTypeContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:154,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:156,1
    - Dst: dynamic_cast<AuthLogicParser::PrincipalTypeContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:157,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:159,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:162,1
    - Dst: dynamic_cast<AuthLogicParser::CustomTypeContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:162,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:164,1
    - Dst: VARIABLE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' auth_logic_type_context'
    argTypes:
    - AuthLogicParser::AuthLogicTypeContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 166
    functionName: raksha::ir::auth_logic::ConstructArgumentType
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 1
    functionsReached:
    - ABSL_DIE_IF_NULL
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - dynamic_cast<AuthLogicParser::CustomTypeContext*>
    - dynamic_cast<AuthLogicParser::PrincipalTypeContext*>
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - VARIABLE
    - dynamic_cast<AuthLogicParser::NumberTypeContext*>
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: datalog::ArgumentType
    signature: "datalog::ArgumentType ConstructArgumentType(\n    AuthLogicParser::AuthLogicTypeContext&
      auth_logic_type_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:178,1
    - Dst: authLogicType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:178,1
    - Dst: authLogicType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:179,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:181,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:181,1
    - Dst: VARIABLE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:182,1
    - Dst: raksha::ir::auth_logic::ConstructArgumentType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:183,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:184,1
    - Dst: authLogicType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:184,1
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:186,1
    - Dst: VARIABLE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:187,1
    - Dst: ATTRIBUTE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:188,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' relation_declaration_context'
    argTypes:
    - AuthLogicParser::RelationDeclarationContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 190
    functionName: raksha::ir::auth_logic::ConstructRelationDeclaration
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 1
    functionsReached:
    - ABSL_DIE_IF_NULL
    - authLogicType
    - std::vector::push_back
    - ATTRIBUTE
    - std::vector::reserve
    - raksha::ir::datalog::RelationDeclaration::RelationDeclaration
    - std::move
    - raksha::ir::datalog::Argument::Argument
    - VARIABLE
    - raksha::ir::auth_logic::ConstructArgumentType
    linkageType: ''
    returnType: datalog::RelationDeclaration
    signature: "datalog::RelationDeclaration ConstructRelationDeclaration(\n    AuthLogicParser::RelationDeclarationContext&
      relation_declaration_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Query
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:193,1
    - Dst: VARIABLE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:193,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:194,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:194,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:194,1
    - Dst: raksha::ir::auth_logic::ConstructFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:195,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:195,1
    - Dst: fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' query_context'
    argTypes:
    - AuthLogicParser::QueryContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 5
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: raksha::ir::auth_logic::ConstructQuery
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 1
    functionsReached:
    - principal
    - ABSL_DIE_IF_NULL
    - raksha::ir::auth_logic::ConstructPrincipal
    - fact
    - Query
    - raksha::ir::auth_logic::ConstructFact
    - VARIABLE
    linkageType: ''
    returnType: Query
    signature: Query ConstructQuery(AuthLogicParser::QueryContext& query_context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::FactAssertionContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:201,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:203,1
    - Dst: raksha::ir::auth_logic::ConstructFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:204,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:204,1
    - Dst: auto*::fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:204,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:207,1
    - Dst: dynamic_cast<AuthLogicParser::HornClauseAssertionContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:207,1
    - Dst: utils::MapIter<BaseFact>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:209,1
    - Dst: rvalue
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:210,1
    - Dst: raksha::ir::auth_logic::ConstructRvalue
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:212,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:212,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:214,1
    - Dst: ConditionalAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:214,1
    - Dst: raksha::ir::auth_logic::ConstructFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:215,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:215,1
    - Dst: fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:215,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' assertion_context'
    argTypes:
    - AuthLogicParser::AssertionContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 198
    functionDepth: 5
    functionLinenumber: 198
    functionLinenumberEnd: 217
    functionName: raksha::ir::auth_logic::ConstructAssertion
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 1
    functionsReached:
    - ABSL_DIE_IF_NULL
    - utils::MapIter<BaseFact>
    - ConditionalAssertion
    - raksha::ir::auth_logic::ConstructRvalue
    - fact
    - Assertion
    - raksha::ir::auth_logic::ConstructFact
    - dynamic_cast<AuthLogicParser::FactAssertionContext*>
    - std::move
    - auto*::fact
    - dynamic_cast<AuthLogicParser::HornClauseAssertionContext*>
    - rvalue
    linkageType: ''
    returnType: Assertion
    signature: "Assertion ConstructAssertion(\n    AuthLogicParser::AssertionContext&
      assertion_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::SaysSingleContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:222,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:225,1
    - Dst: raksha::ir::auth_logic::ConstructAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:226,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:226,1
    - Dst: auto*::assertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:226,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:227,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:228,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:228,1
    - Dst: auto*::principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:228,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:229,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:232,1
    - Dst: dynamic_cast<AuthLogicParser::SaysMultiContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:232,1
    - Dst: utils::MapIter<Assertion>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:234,1
    - Dst: assertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:235,1
    - Dst: raksha::ir::auth_logic::ConstructAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:237,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:237,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:239,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:240,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:240,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:240,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' says_assertion_context'
    argTypes:
    - AuthLogicParser::SaysAssertionContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 219
    functionDepth: 6
    functionLinenumber: 219
    functionLinenumberEnd: 242
    functionName: raksha::ir::auth_logic::ConstructSaysAssertion
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 1
    functionsReached:
    - raksha::ir::auth_logic::ConstructAssertion
    - ABSL_DIE_IF_NULL
    - principal
    - std::vector::push_back
    - raksha::ir::auth_logic::ConstructPrincipal
    - auto*::principal
    - dynamic_cast<AuthLogicParser::SaysSingleContext*>
    - SaysAssertion
    - dynamic_cast<AuthLogicParser::SaysMultiContext*>
    - std::move
    - assertion
    - auto*::assertion
    - utils::MapIter<Assertion>
    linkageType: ''
    returnType: SaysAssertion
    signature: "SaysAssertion ConstructSaysAssertion(\n    AuthLogicParser::SaysAssertionContext&
      says_assertion_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<datalog::RelationDeclaration>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:246,1
    - Dst: relationDeclaration
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:247,1
    - Dst: raksha::ir::auth_logic::ConstructRelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:250,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:251,1
    - Dst: utils::MapIter<SaysAssertion>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:253,1
    - Dst: saysAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:254,1
    - Dst: raksha::ir::auth_logic::ConstructSaysAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:256,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:256,1
    - Dst: utils::MapIter<Query>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:258,1
    - Dst: query
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:259,1
    - Dst: raksha::ir::auth_logic::ConstructQuery
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:261,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:261,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:263,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:263,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:263,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' program_context'
    argTypes:
    - AuthLogicParser::ProgramContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 244
    functionDepth: 7
    functionLinenumber: 244
    functionLinenumberEnd: 265
    functionName: raksha::ir::auth_logic::ConstructProgram
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - raksha::ir::auth_logic::ConstructQuery
    - utils::MapIter<SaysAssertion>
    - utils::MapIter<datalog::RelationDeclaration>
    - query
    - Program
    - std::move
    - raksha::ir::auth_logic::ConstructSaysAssertion
    - raksha::ir::auth_logic::ConstructRelationDeclaration
    - saysAssertion
    - relationDeclaration
    - utils::MapIter<Query>
    linkageType: ''
    returnType: Program
    signature: "Program ConstructProgram(\n    AuthLogicParser::ProgramContext& program_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:282,1
    - Dst: AuthLogicParser::program
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:282,1
    - Dst: raksha::ir::auth_logic::ConstructProgram
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prog_text
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 271
    functionDepth: 8
    functionLinenumber: 271
    functionLinenumberEnd: 284
    functionName: raksha::ir::auth_logic::ParseProgram
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 1
    functionsReached:
    - ABSL_DIE_IF_NULL
    - raksha::ir::auth_logic::ConstructProgram
    - AuthLogicParser::program
    linkageType: ''
    returnType: Program
    signature: Program ParseProgram(absl::string_view prog_text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrReplaceAll
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - predicate_argument
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 4
    functionsReached:
    - absl::StrReplaceAll
    linkageType: ''
    returnType: std::string
    signature: "std::string SanitizeMultilineStringForPredicateArgument(\n    const
      std::string predicate_argument)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:53,1
    - Dst: STRING_LITERAL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' principal_context'
    argTypes:
    - AuthLogicParser::PrincipalContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: raksha::ir::auth_logic::ConstructPrincipal
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 10
    functionsReached:
    - Principal
    - STRING_LITERAL
    linkageType: ''
    returnType: Principal
    signature: "Principal ConstructPrincipal(\n    AuthLogicParser::PrincipalContext&
      principal_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:58,1
    - Dst: pred_arg
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:59,1
    - Dst: dynamic_cast<AuthLogicParser::MultilineConstantContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:61,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:62,1
    - Dst: raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:63,1
    - Dst: auto*::getText
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:64,1
    - Dst: getText
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:65,1
    - Dst: NEG
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:67,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:70,1
    - Dst: VARIABLE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:70,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' predicate_context'
    argTypes:
    - AuthLogicParser::PredicateContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 72
    functionName: raksha::ir::auth_logic::ConstructPredicate
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 4
    functionsReached:
    - ABSL_DIE_IF_NULL
    - NEG
    - utils::MapIter<std::string>
    - auto*::getText
    - pred_arg
    - raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
    - dynamic_cast<AuthLogicParser::MultilineConstantContext*>
    - raksha::ir::datalog::Predicate::Predicate
    - std::move
    - VARIABLE
    - getText
    linkageType: ''
    returnType: datalog::Predicate
    signature: "datalog::Predicate ConstructPredicate(\n    AuthLogicParser::PredicateContext&
      predicate_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::PredphraseContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:78,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:80,1
    - Dst: Attribute
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:80,1
    - Dst: raksha::ir::auth_logic::ConstructPredicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:82,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:82,1
    - Dst: auto*::predicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:82,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:85,1
    - Dst: dynamic_cast<AuthLogicParser::ActsAsPhraseContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:85,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:87,1
    - Dst: CanActAs
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:87,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:89,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:89,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - left_principal
    - ' verbphrase_context'
    argTypes:
    - Principal
    - AuthLogicParser::VerbphraseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 90
    functionName: raksha::ir::auth_logic::ConstructVerbphrase
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 2
    functionsReached:
    - ABSL_DIE_IF_NULL
    - principal
    - raksha::ir::auth_logic::ConstructPrincipal
    - CanActAs
    - auto*::predicate
    - BaseFact
    - Attribute
    - raksha::ir::auth_logic::ConstructPredicate
    - dynamic_cast<AuthLogicParser::PredphraseContext*>
    - dynamic_cast<AuthLogicParser::ActsAsPhraseContext*>
    linkageType: ''
    returnType: BaseFact
    signature: "BaseFact ConstructVerbphrase(\n    Principal left_principal,\n    AuthLogicParser::VerbphraseContext&
      verbphrase_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::PrinFactContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:95,1
    - Dst: raksha::ir::auth_logic::ConstructVerbphrase
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:96,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:97,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:97,1
    - Dst: auto*::principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:97,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:98,1
    - Dst: auto*::verbphrase
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:98,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:101,1
    - Dst: dynamic_cast<AuthLogicParser::PredFactContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:101,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:103,1
    - Dst: raksha::ir::auth_logic::ConstructPredicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:104,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:104,1
    - Dst: predicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' flat_fact_context'
    argTypes:
    - AuthLogicParser::FlatFactContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: raksha::ir::auth_logic::ConstructFlatFact
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 4
    functionsReached:
    - ABSL_DIE_IF_NULL
    - auto*::principal
    - raksha::ir::auth_logic::ConstructPrincipal
    - dynamic_cast<AuthLogicParser::PrinFactContext*>
    - raksha::ir::auth_logic::ConstructVerbphrase
    - BaseFact
    - raksha::ir::auth_logic::ConstructPredicate
    - dynamic_cast<AuthLogicParser::PredFactContext*>
    - predicate
    - auto*::verbphrase
    linkageType: ''
    returnType: BaseFact
    signature: "BaseFact ConstructFlatFact(\n    AuthLogicParser::FlatFactContext&
      flat_fact_context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::FlatFactRvalueContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:110,1
    - Dst: raksha::ir::auth_logic::ConstructFlatFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:112,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:113,1
    - Dst: auto*::flatFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:113,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:115,1
    - Dst: dynamic_cast<AuthLogicParser::BinopRvalueContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:116,1
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:117,1
    - Dst: pred_arg
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:118,1
    - Dst: dynamic_cast<AuthLogicParser::MultilineConstantContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:120,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:121,1
    - Dst: raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:122,1
    - Dst: auto*::getText
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:123,1
    - Dst: getText
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:124,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:126,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:126,1
    - Dst: binop
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:126,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' rvalue_context'
    argTypes:
    - AuthLogicParser::RvalueContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 107
    functionDepth: 4
    functionLinenumber: 107
    functionLinenumberEnd: 129
    functionName: raksha::ir::auth_logic::ConstructRvalue
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 2
    functionsReached:
    - ABSL_DIE_IF_NULL
    - utils::MapIter<std::string>
    - dynamic_cast<AuthLogicParser::BinopRvalueContext*>
    - raksha::ir::auth_logic::ConstructFlatFact
    - pred_arg
    - auto*::getText
    - raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
    - binop
    - BaseFact
    - dynamic_cast<AuthLogicParser::MultilineConstantContext*>
    - raksha::ir::datalog::Predicate::Predicate
    - std::move
    - dynamic_cast<AuthLogicParser::FlatFactRvalueContext*>
    - getText
    - auto*::flatFact
    linkageType: ''
    returnType: BaseFact
    signature: "BaseFact ConstructRvalue(\n    AuthLogicParser::RvalueContext& rvalue_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::FlatFactFactContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:138,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:140,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:141,1
    - Dst: raksha::ir::auth_logic::ConstructFlatFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:142,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:142,1
    - Dst: auto*::flatFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:142,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:144,1
    - Dst: dynamic_cast<AuthLogicParser::CanSayFactContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:145,1
    - Dst: std::forward_list<Principal>::push_front
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:146,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:147,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:147,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:147,1
    - Dst: raksha::ir::auth_logic::ConstructFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:148,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:148,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:149,1
    - Dst: fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - delegation_chain
    - ' fact_context'
    argTypes:
    - std::forward_list<Principal>
    - AuthLogicParser::FactContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 150
    functionName: raksha::ir::auth_logic::ConstructFact
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 7
    functionsReached:
    - ABSL_DIE_IF_NULL
    - auto*::flatFact
    - principal
    - dynamic_cast<AuthLogicParser::FlatFactFactContext*>
    - Fact
    - std::forward_list<Principal>::push_front
    - raksha::ir::auth_logic::ConstructPrincipal
    - fact
    - raksha::ir::auth_logic::ConstructFact
    - std::move
    - dynamic_cast<AuthLogicParser::CanSayFactContext*>
    - raksha::ir::auth_logic::ConstructFlatFact
    linkageType: ''
    returnType: Fact
    signature: "Fact ConstructFact(std::forward_list<Principal> delegation_chain,\n
      \                         AuthLogicParser::FactContext& fact_context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::NumberTypeContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:154,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:156,1
    - Dst: dynamic_cast<AuthLogicParser::PrincipalTypeContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:157,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:159,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:162,1
    - Dst: dynamic_cast<AuthLogicParser::CustomTypeContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:162,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:164,1
    - Dst: VARIABLE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' auth_logic_type_context'
    argTypes:
    - AuthLogicParser::AuthLogicTypeContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 166
    functionName: raksha::ir::auth_logic::ConstructArgumentType
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 2
    functionsReached:
    - ABSL_DIE_IF_NULL
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - dynamic_cast<AuthLogicParser::CustomTypeContext*>
    - dynamic_cast<AuthLogicParser::PrincipalTypeContext*>
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - VARIABLE
    - dynamic_cast<AuthLogicParser::NumberTypeContext*>
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: datalog::ArgumentType
    signature: "datalog::ArgumentType ConstructArgumentType(\n    AuthLogicParser::AuthLogicTypeContext&
      auth_logic_type_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:178,1
    - Dst: authLogicType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:178,1
    - Dst: authLogicType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:179,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:181,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:181,1
    - Dst: VARIABLE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:182,1
    - Dst: raksha::ir::auth_logic::ConstructArgumentType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:183,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:184,1
    - Dst: authLogicType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:184,1
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:186,1
    - Dst: VARIABLE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:187,1
    - Dst: ATTRIBUTE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:188,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' relation_declaration_context'
    argTypes:
    - AuthLogicParser::RelationDeclarationContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 190
    functionName: raksha::ir::auth_logic::ConstructRelationDeclaration
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 2
    functionsReached:
    - ABSL_DIE_IF_NULL
    - authLogicType
    - std::vector::push_back
    - ATTRIBUTE
    - std::vector::reserve
    - raksha::ir::datalog::RelationDeclaration::RelationDeclaration
    - std::move
    - raksha::ir::datalog::Argument::Argument
    - VARIABLE
    - raksha::ir::auth_logic::ConstructArgumentType
    linkageType: ''
    returnType: datalog::RelationDeclaration
    signature: "datalog::RelationDeclaration ConstructRelationDeclaration(\n    AuthLogicParser::RelationDeclarationContext&
      relation_declaration_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Query
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:193,1
    - Dst: VARIABLE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:193,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:194,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:194,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:194,1
    - Dst: raksha::ir::auth_logic::ConstructFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:195,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:195,1
    - Dst: fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' query_context'
    argTypes:
    - AuthLogicParser::QueryContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 5
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: raksha::ir::auth_logic::ConstructQuery
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 2
    functionsReached:
    - principal
    - ABSL_DIE_IF_NULL
    - raksha::ir::auth_logic::ConstructPrincipal
    - fact
    - Query
    - raksha::ir::auth_logic::ConstructFact
    - VARIABLE
    linkageType: ''
    returnType: Query
    signature: Query ConstructQuery(AuthLogicParser::QueryContext& query_context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::FactAssertionContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:201,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:203,1
    - Dst: raksha::ir::auth_logic::ConstructFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:204,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:204,1
    - Dst: auto*::fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:204,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:207,1
    - Dst: dynamic_cast<AuthLogicParser::HornClauseAssertionContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:207,1
    - Dst: utils::MapIter<BaseFact>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:209,1
    - Dst: rvalue
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:210,1
    - Dst: raksha::ir::auth_logic::ConstructRvalue
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:212,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:212,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:214,1
    - Dst: ConditionalAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:214,1
    - Dst: raksha::ir::auth_logic::ConstructFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:215,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:215,1
    - Dst: fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:215,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' assertion_context'
    argTypes:
    - AuthLogicParser::AssertionContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 198
    functionDepth: 5
    functionLinenumber: 198
    functionLinenumberEnd: 217
    functionName: raksha::ir::auth_logic::ConstructAssertion
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 2
    functionsReached:
    - ABSL_DIE_IF_NULL
    - utils::MapIter<BaseFact>
    - ConditionalAssertion
    - raksha::ir::auth_logic::ConstructRvalue
    - fact
    - Assertion
    - raksha::ir::auth_logic::ConstructFact
    - dynamic_cast<AuthLogicParser::FactAssertionContext*>
    - std::move
    - auto*::fact
    - dynamic_cast<AuthLogicParser::HornClauseAssertionContext*>
    - rvalue
    linkageType: ''
    returnType: Assertion
    signature: "Assertion ConstructAssertion(\n    AuthLogicParser::AssertionContext&
      assertion_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::SaysSingleContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:222,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:225,1
    - Dst: raksha::ir::auth_logic::ConstructAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:226,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:226,1
    - Dst: auto*::assertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:226,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:227,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:228,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:228,1
    - Dst: auto*::principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:228,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:229,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:232,1
    - Dst: dynamic_cast<AuthLogicParser::SaysMultiContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:232,1
    - Dst: utils::MapIter<Assertion>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:234,1
    - Dst: assertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:235,1
    - Dst: raksha::ir::auth_logic::ConstructAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:237,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:237,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:239,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:240,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:240,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:240,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' says_assertion_context'
    argTypes:
    - AuthLogicParser::SaysAssertionContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 219
    functionDepth: 6
    functionLinenumber: 219
    functionLinenumberEnd: 242
    functionName: raksha::ir::auth_logic::ConstructSaysAssertion
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 2
    functionsReached:
    - raksha::ir::auth_logic::ConstructAssertion
    - ABSL_DIE_IF_NULL
    - principal
    - std::vector::push_back
    - raksha::ir::auth_logic::ConstructPrincipal
    - auto*::principal
    - dynamic_cast<AuthLogicParser::SaysSingleContext*>
    - SaysAssertion
    - dynamic_cast<AuthLogicParser::SaysMultiContext*>
    - std::move
    - assertion
    - auto*::assertion
    - utils::MapIter<Assertion>
    linkageType: ''
    returnType: SaysAssertion
    signature: "SaysAssertion ConstructSaysAssertion(\n    AuthLogicParser::SaysAssertionContext&
      says_assertion_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<datalog::RelationDeclaration>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:246,1
    - Dst: relationDeclaration
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:247,1
    - Dst: raksha::ir::auth_logic::ConstructRelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:250,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:251,1
    - Dst: utils::MapIter<SaysAssertion>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:253,1
    - Dst: saysAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:254,1
    - Dst: raksha::ir::auth_logic::ConstructSaysAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:256,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:256,1
    - Dst: utils::MapIter<Query>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:258,1
    - Dst: query
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:259,1
    - Dst: raksha::ir::auth_logic::ConstructQuery
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:261,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:261,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:263,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:263,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:263,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' program_context'
    argTypes:
    - AuthLogicParser::ProgramContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 244
    functionDepth: 7
    functionLinenumber: 244
    functionLinenumberEnd: 265
    functionName: raksha::ir::auth_logic::ConstructProgram
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 1
    functionsReached:
    - ABSL_DIE_IF_NULL
    - raksha::ir::auth_logic::ConstructQuery
    - utils::MapIter<SaysAssertion>
    - utils::MapIter<datalog::RelationDeclaration>
    - query
    - Program
    - std::move
    - raksha::ir::auth_logic::ConstructSaysAssertion
    - raksha::ir::auth_logic::ConstructRelationDeclaration
    - saysAssertion
    - relationDeclaration
    - utils::MapIter<Query>
    linkageType: ''
    returnType: Program
    signature: "Program ConstructProgram(\n    AuthLogicParser::ProgramContext& program_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrReplaceAll
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - predicate_argument
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 6
    functionsReached:
    - absl::StrReplaceAll
    linkageType: ''
    returnType: std::string
    signature: "std::string SanitizeMultilineStringForPredicateArgument(\n    const
      std::string predicate_argument)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:53,1
    - Dst: STRING_LITERAL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' principal_context'
    argTypes:
    - AuthLogicParser::PrincipalContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: raksha::ir::auth_logic::ConstructPrincipal
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 15
    functionsReached:
    - Principal
    - STRING_LITERAL
    linkageType: ''
    returnType: Principal
    signature: "Principal ConstructPrincipal(\n    AuthLogicParser::PrincipalContext&
      principal_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:58,1
    - Dst: pred_arg
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:59,1
    - Dst: dynamic_cast<AuthLogicParser::MultilineConstantContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:61,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:62,1
    - Dst: raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:63,1
    - Dst: auto*::getText
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:64,1
    - Dst: getText
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:65,1
    - Dst: NEG
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:67,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:70,1
    - Dst: VARIABLE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:70,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' predicate_context'
    argTypes:
    - AuthLogicParser::PredicateContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 72
    functionName: raksha::ir::auth_logic::ConstructPredicate
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 6
    functionsReached:
    - ABSL_DIE_IF_NULL
    - NEG
    - utils::MapIter<std::string>
    - auto*::getText
    - pred_arg
    - raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
    - dynamic_cast<AuthLogicParser::MultilineConstantContext*>
    - raksha::ir::datalog::Predicate::Predicate
    - std::move
    - VARIABLE
    - getText
    linkageType: ''
    returnType: datalog::Predicate
    signature: "datalog::Predicate ConstructPredicate(\n    AuthLogicParser::PredicateContext&
      predicate_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::PredphraseContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:78,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:80,1
    - Dst: Attribute
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:80,1
    - Dst: raksha::ir::auth_logic::ConstructPredicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:82,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:82,1
    - Dst: auto*::predicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:82,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:85,1
    - Dst: dynamic_cast<AuthLogicParser::ActsAsPhraseContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:85,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:87,1
    - Dst: CanActAs
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:87,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:89,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:89,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - left_principal
    - ' verbphrase_context'
    argTypes:
    - Principal
    - AuthLogicParser::VerbphraseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 90
    functionName: raksha::ir::auth_logic::ConstructVerbphrase
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 3
    functionsReached:
    - ABSL_DIE_IF_NULL
    - principal
    - raksha::ir::auth_logic::ConstructPrincipal
    - CanActAs
    - auto*::predicate
    - BaseFact
    - Attribute
    - raksha::ir::auth_logic::ConstructPredicate
    - dynamic_cast<AuthLogicParser::PredphraseContext*>
    - dynamic_cast<AuthLogicParser::ActsAsPhraseContext*>
    linkageType: ''
    returnType: BaseFact
    signature: "BaseFact ConstructVerbphrase(\n    Principal left_principal,\n    AuthLogicParser::VerbphraseContext&
      verbphrase_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::PrinFactContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:95,1
    - Dst: raksha::ir::auth_logic::ConstructVerbphrase
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:96,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:97,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:97,1
    - Dst: auto*::principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:97,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:98,1
    - Dst: auto*::verbphrase
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:98,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:101,1
    - Dst: dynamic_cast<AuthLogicParser::PredFactContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:101,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:103,1
    - Dst: raksha::ir::auth_logic::ConstructPredicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:104,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:104,1
    - Dst: predicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' flat_fact_context'
    argTypes:
    - AuthLogicParser::FlatFactContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: raksha::ir::auth_logic::ConstructFlatFact
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 6
    functionsReached:
    - ABSL_DIE_IF_NULL
    - auto*::principal
    - raksha::ir::auth_logic::ConstructPrincipal
    - dynamic_cast<AuthLogicParser::PrinFactContext*>
    - raksha::ir::auth_logic::ConstructVerbphrase
    - BaseFact
    - raksha::ir::auth_logic::ConstructPredicate
    - dynamic_cast<AuthLogicParser::PredFactContext*>
    - predicate
    - auto*::verbphrase
    linkageType: ''
    returnType: BaseFact
    signature: "BaseFact ConstructFlatFact(\n    AuthLogicParser::FlatFactContext&
      flat_fact_context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::FlatFactRvalueContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:110,1
    - Dst: raksha::ir::auth_logic::ConstructFlatFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:112,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:113,1
    - Dst: auto*::flatFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:113,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:115,1
    - Dst: dynamic_cast<AuthLogicParser::BinopRvalueContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:116,1
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:117,1
    - Dst: pred_arg
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:118,1
    - Dst: dynamic_cast<AuthLogicParser::MultilineConstantContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:120,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:121,1
    - Dst: raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:122,1
    - Dst: auto*::getText
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:123,1
    - Dst: getText
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:124,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:126,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:126,1
    - Dst: binop
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:126,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' rvalue_context'
    argTypes:
    - AuthLogicParser::RvalueContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 107
    functionDepth: 4
    functionLinenumber: 107
    functionLinenumberEnd: 129
    functionName: raksha::ir::auth_logic::ConstructRvalue
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 3
    functionsReached:
    - ABSL_DIE_IF_NULL
    - utils::MapIter<std::string>
    - dynamic_cast<AuthLogicParser::BinopRvalueContext*>
    - raksha::ir::auth_logic::ConstructFlatFact
    - pred_arg
    - auto*::getText
    - raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
    - binop
    - BaseFact
    - dynamic_cast<AuthLogicParser::MultilineConstantContext*>
    - raksha::ir::datalog::Predicate::Predicate
    - std::move
    - dynamic_cast<AuthLogicParser::FlatFactRvalueContext*>
    - getText
    - auto*::flatFact
    linkageType: ''
    returnType: BaseFact
    signature: "BaseFact ConstructRvalue(\n    AuthLogicParser::RvalueContext& rvalue_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::FlatFactFactContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:138,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:140,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:141,1
    - Dst: raksha::ir::auth_logic::ConstructFlatFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:142,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:142,1
    - Dst: auto*::flatFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:142,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:144,1
    - Dst: dynamic_cast<AuthLogicParser::CanSayFactContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:145,1
    - Dst: std::forward_list<Principal>::push_front
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:146,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:147,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:147,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:147,1
    - Dst: raksha::ir::auth_logic::ConstructFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:148,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:148,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:149,1
    - Dst: fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - delegation_chain
    - ' fact_context'
    argTypes:
    - std::forward_list<Principal>
    - AuthLogicParser::FactContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 150
    functionName: raksha::ir::auth_logic::ConstructFact
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 10
    functionsReached:
    - ABSL_DIE_IF_NULL
    - auto*::flatFact
    - principal
    - dynamic_cast<AuthLogicParser::FlatFactFactContext*>
    - Fact
    - std::forward_list<Principal>::push_front
    - raksha::ir::auth_logic::ConstructPrincipal
    - fact
    - raksha::ir::auth_logic::ConstructFact
    - std::move
    - dynamic_cast<AuthLogicParser::CanSayFactContext*>
    - raksha::ir::auth_logic::ConstructFlatFact
    linkageType: ''
    returnType: Fact
    signature: "Fact ConstructFact(std::forward_list<Principal> delegation_chain,\n
      \                         AuthLogicParser::FactContext& fact_context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::NumberTypeContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:154,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:156,1
    - Dst: dynamic_cast<AuthLogicParser::PrincipalTypeContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:157,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:159,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:162,1
    - Dst: dynamic_cast<AuthLogicParser::CustomTypeContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:162,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:164,1
    - Dst: VARIABLE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' auth_logic_type_context'
    argTypes:
    - AuthLogicParser::AuthLogicTypeContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 166
    functionName: raksha::ir::auth_logic::ConstructArgumentType
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 3
    functionsReached:
    - ABSL_DIE_IF_NULL
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - dynamic_cast<AuthLogicParser::CustomTypeContext*>
    - dynamic_cast<AuthLogicParser::PrincipalTypeContext*>
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - VARIABLE
    - dynamic_cast<AuthLogicParser::NumberTypeContext*>
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: datalog::ArgumentType
    signature: "datalog::ArgumentType ConstructArgumentType(\n    AuthLogicParser::AuthLogicTypeContext&
      auth_logic_type_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:178,1
    - Dst: authLogicType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:178,1
    - Dst: authLogicType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:179,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:181,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:181,1
    - Dst: VARIABLE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:182,1
    - Dst: raksha::ir::auth_logic::ConstructArgumentType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:183,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:184,1
    - Dst: authLogicType
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:184,1
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:186,1
    - Dst: VARIABLE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:187,1
    - Dst: ATTRIBUTE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:188,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' relation_declaration_context'
    argTypes:
    - AuthLogicParser::RelationDeclarationContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 190
    functionName: raksha::ir::auth_logic::ConstructRelationDeclaration
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 3
    functionsReached:
    - ABSL_DIE_IF_NULL
    - authLogicType
    - std::vector::push_back
    - ATTRIBUTE
    - std::vector::reserve
    - raksha::ir::datalog::RelationDeclaration::RelationDeclaration
    - std::move
    - raksha::ir::datalog::Argument::Argument
    - VARIABLE
    - raksha::ir::auth_logic::ConstructArgumentType
    linkageType: ''
    returnType: datalog::RelationDeclaration
    signature: "datalog::RelationDeclaration ConstructRelationDeclaration(\n    AuthLogicParser::RelationDeclarationContext&
      relation_declaration_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Query
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:193,1
    - Dst: VARIABLE
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:193,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:194,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:194,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:194,1
    - Dst: raksha::ir::auth_logic::ConstructFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:195,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:195,1
    - Dst: fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' query_context'
    argTypes:
    - AuthLogicParser::QueryContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 5
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: raksha::ir::auth_logic::ConstructQuery
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 3
    functionsReached:
    - principal
    - ABSL_DIE_IF_NULL
    - raksha::ir::auth_logic::ConstructPrincipal
    - fact
    - Query
    - raksha::ir::auth_logic::ConstructFact
    - VARIABLE
    linkageType: ''
    returnType: Query
    signature: Query ConstructQuery(AuthLogicParser::QueryContext& query_context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::FactAssertionContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:201,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:203,1
    - Dst: raksha::ir::auth_logic::ConstructFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:204,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:204,1
    - Dst: auto*::fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:204,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:207,1
    - Dst: dynamic_cast<AuthLogicParser::HornClauseAssertionContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:207,1
    - Dst: utils::MapIter<BaseFact>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:209,1
    - Dst: rvalue
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:210,1
    - Dst: raksha::ir::auth_logic::ConstructRvalue
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:212,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:212,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:214,1
    - Dst: ConditionalAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:214,1
    - Dst: raksha::ir::auth_logic::ConstructFact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:215,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:215,1
    - Dst: fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:215,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' assertion_context'
    argTypes:
    - AuthLogicParser::AssertionContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 198
    functionDepth: 5
    functionLinenumber: 198
    functionLinenumberEnd: 217
    functionName: raksha::ir::auth_logic::ConstructAssertion
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 3
    functionsReached:
    - ABSL_DIE_IF_NULL
    - utils::MapIter<BaseFact>
    - ConditionalAssertion
    - raksha::ir::auth_logic::ConstructRvalue
    - fact
    - Assertion
    - raksha::ir::auth_logic::ConstructFact
    - dynamic_cast<AuthLogicParser::FactAssertionContext*>
    - std::move
    - auto*::fact
    - dynamic_cast<AuthLogicParser::HornClauseAssertionContext*>
    - rvalue
    linkageType: ''
    returnType: Assertion
    signature: "Assertion ConstructAssertion(\n    AuthLogicParser::AssertionContext&
      assertion_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<AuthLogicParser::SaysSingleContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:222,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:225,1
    - Dst: raksha::ir::auth_logic::ConstructAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:226,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:226,1
    - Dst: auto*::assertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:226,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:227,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:228,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:228,1
    - Dst: auto*::principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:228,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:229,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:232,1
    - Dst: dynamic_cast<AuthLogicParser::SaysMultiContext*>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:232,1
    - Dst: utils::MapIter<Assertion>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:234,1
    - Dst: assertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:235,1
    - Dst: raksha::ir::auth_logic::ConstructAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:237,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:237,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:239,1
    - Dst: raksha::ir::auth_logic::ConstructPrincipal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:240,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:240,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:240,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' says_assertion_context'
    argTypes:
    - AuthLogicParser::SaysAssertionContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 219
    functionDepth: 6
    functionLinenumber: 219
    functionLinenumberEnd: 242
    functionName: raksha::ir::auth_logic::ConstructSaysAssertion
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 3
    functionsReached:
    - raksha::ir::auth_logic::ConstructAssertion
    - ABSL_DIE_IF_NULL
    - principal
    - std::vector::push_back
    - raksha::ir::auth_logic::ConstructPrincipal
    - auto*::principal
    - dynamic_cast<AuthLogicParser::SaysSingleContext*>
    - SaysAssertion
    - dynamic_cast<AuthLogicParser::SaysMultiContext*>
    - std::move
    - assertion
    - auto*::assertion
    - utils::MapIter<Assertion>
    linkageType: ''
    returnType: SaysAssertion
    signature: "SaysAssertion ConstructSaysAssertion(\n    AuthLogicParser::SaysAssertionContext&
      says_assertion_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<datalog::RelationDeclaration>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:246,1
    - Dst: relationDeclaration
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:247,1
    - Dst: raksha::ir::auth_logic::ConstructRelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:250,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:251,1
    - Dst: utils::MapIter<SaysAssertion>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:253,1
    - Dst: saysAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:254,1
    - Dst: raksha::ir::auth_logic::ConstructSaysAssertion
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:256,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:256,1
    - Dst: utils::MapIter<Query>
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:258,1
    - Dst: query
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:259,1
    - Dst: raksha::ir::auth_logic::ConstructQuery
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:261,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:261,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:263,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:263,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:263,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' program_context'
    argTypes:
    - AuthLogicParser::ProgramContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 244
    functionDepth: 7
    functionLinenumber: 244
    functionLinenumberEnd: 265
    functionName: raksha::ir::auth_logic::ConstructProgram
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 1
    functionsReached:
    - ABSL_DIE_IF_NULL
    - raksha::ir::auth_logic::ConstructQuery
    - utils::MapIter<SaysAssertion>
    - utils::MapIter<datalog::RelationDeclaration>
    - query
    - Program
    - std::move
    - raksha::ir::auth_logic::ConstructSaysAssertion
    - raksha::ir::auth_logic::ConstructRelationDeclaration
    - saysAssertion
    - relationDeclaration
    - utils::MapIter<Query>
    linkageType: ''
    returnType: Program
    signature: "Program ConstructProgram(\n    AuthLogicParser::ProgramContext& program_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:282,1
    - Dst: AuthLogicParser::program
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:282,1
    - Dst: raksha::ir::auth_logic::ConstructProgram
      Src: /src/raksha/src/ir/auth_logic/ast_construction.cc:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prog_text
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 271
    functionDepth: 8
    functionLinenumber: 271
    functionLinenumberEnd: 284
    functionName: raksha::ir::auth_logic::ParseProgram
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction.cc
    functionUses: 1
    functionsReached:
    - ABSL_DIE_IF_NULL
    - raksha::ir::auth_logic::ConstructProgram
    - AuthLogicParser::program
    linkageType: ''
    returnType: Program
    signature: Program ParseProgram(absl::string_view prog_text)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: kind
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:31,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:37,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:37,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' arg_type'
    argTypes:
    - datalog::ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: raksha::ir::auth_logic::TypeToUniverseName
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - kind
    - name
    - absl::StrCat
    - CHECK
    linkageType: ''
    returnType: std::string
    signature: std::string TypeToUniverseName(const datalog::ArgumentType& arg_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:45,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:45,1
    - Dst: raksha::ir::auth_logic::TypeToUniverseName
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:46,1
    - Dst: std::string
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - element_name
    - ' arg_type'
    argTypes:
    - absl::string_view
    - datalog::ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: raksha::ir::auth_logic::MakeUniverseMembershipFact
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - BaseFact
    - raksha::ir::datalog::Predicate::Predicate
    - std::string
    - raksha::ir::auth_logic::TypeToUniverseName
    linkageType: ''
    returnType: BaseFact
    signature: "BaseFact MakeUniverseMembershipFact(absl::string_view element_name,\n
      \                                   const datalog::ArgumentType& arg_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:53,1
    - Dst: raksha::ir::auth_logic::TypeToUniverseName
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:53,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg_type'
    argTypes:
    - datalog::ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: raksha::ir::auth_logic::TypeToUniverseDeclaration
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::RelationDeclaration::RelationDeclaration
    - raksha::ir::auth_logic::TypeToUniverseName
    - raksha::ir::datalog::Argument::Argument
    linkageType: ''
    returnType: datalog::RelationDeclaration
    signature: "datalog::RelationDeclaration TypeToUniverseDeclaration(\n    const
      datalog::ArgumentType& arg_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: literal_type_map
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:65,1
    - Dst: second::kind
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:66,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:67,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:67,1
    - Dst: literal_type_map
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:73,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:74,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:74,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:76,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:76,1
    - Dst: raksha::ir::auth_logic::MakeUniverseMembershipFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' type_env'
    argTypes:
    - TypeEnvironment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 81
    functionName: raksha::ir::auth_logic::GetUniverseDefiningFacts
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - second::kind
    - Principal
    - Fact
    - Assertion
    - raksha::ir::auth_logic::MakeUniverseMembershipFact
    - SaysAssertion
    - literal_type_map
    linkageType: ''
    returnType: std::vector<SaysAssertion>
    signature: "std::vector<SaysAssertion> GetUniverseDefiningFacts(\n    const TypeEnvironment&
      type_env)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::GetDefaultValue
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DeclSet
    signature: DeclSet GetDefaultValue() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeclSet::merge
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:93,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - DeclSet
    - DeclSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::CombineResult
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - DeclSet::merge
    - std::move
    linkageType: ''
    returnType: DeclSet
    signature: DeclSet CombineResult(DeclSet left, DeclSet right) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arguments
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:100,1
    - Dst: DeclSet::insert
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:101,1
    - Dst: TypeToUniverseDeclaration
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:102,1
    - Dst: argument_type
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' relation_declaration'
    argTypes:
    - datalog::RelationDeclaration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - arguments
    - TypeToUniverseDeclaration
    - argument_type
    - DeclSet::insert
    linkageType: ''
    returnType: DeclSet
    signature: "DeclSet Visit(\n      const datalog::RelationDeclaration& relation_declaration)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Accept
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:111,1
    - Dst: raksha::ir::auth_logic::TypeToUniverseDeclaration
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:116,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:116,1
    - Dst: raksha::ir::auth_logic::TypeToUniverseDeclaration
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:117,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:117,1
    - Dst: absl::flat_hash_set::merge
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' prog'
    argTypes:
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 120
    functionName: raksha::ir::auth_logic::GetUniverseDeclarations
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - Accept
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - raksha::ir::auth_logic::TypeToUniverseDeclaration
    - absl::flat_hash_set::merge
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: absl::flat_hash_set<datalog::RelationDeclaration>
    signature: absl::flat_hash_set<datalog::RelationDeclaration> GetUniverseDeclarations(const
      Program& prog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' decl_env'
    argTypes:
    - DeclarationEnvironment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::GroundingConditionTransformer
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GroundingConditionTransformer(const DeclarationEnvironment& decl_env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assertions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:171,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:172,1
    - Dst: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:172,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:174,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:174,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' says_assertion'
    argTypes:
    - SaysAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 1
    functionsReached:
    - principal
    - std::vector::push_back
    - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    - assertions
    - SaysAssertion
    - std::move
    linkageType: ''
    returnType: SaysAssertion
    signature: SaysAssertion AddUniverseConditions(const SaysAssertion& says_assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:179,1
    - Dst: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:180,1
    - Dst: GetValue
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' assertion'
    argTypes:
    - Assertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 2
    functionsReached:
    - GetValue
    - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    - std::visit
    linkageType: ''
    returnType: Assertion
    signature: Assertion AddUniverseConditions(const Assertion& assertion)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:185,1
    - Dst: base_fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:185,1
    - Dst: std::vector::size
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:186,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:187,1
    - Dst: ConditionalAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:187,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' fact'
    argTypes:
    - Fact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 191
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 2
    functionsReached:
    - ConditionalAssertion
    - Assertion
    - base_fact
    - raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
    - std::vector::size
    linkageType: ''
    returnType: Assertion
    signature: Assertion AddUniverseConditions(const Fact& fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lhs
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:194,1
    - Dst: raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:195,1
    - Dst: Fact::base_fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:195,1
    - Dst: absl::c_copy
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:196,1
    - Dst: rhs
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:196,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:196,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:197,1
    - Dst: ConditionalAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' cond_assertion'
    argTypes:
    - ConditionalAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 2
    functionsReached:
    - ConditionalAssertion
    - lhs
    - Assertion
    - absl::c_copy
    - std::back_inserter
    - rhs
    - Fact::base_fact
    - raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
    linkageType: ''
    returnType: Assertion
    signature: Assertion AddUniverseConditions(const ConditionalAssertion& cond_assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Accept
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' base_fact'
    argTypes:
    - BaseFact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 2
    functionsReached:
    - Accept
    linkageType: ''
    returnType: std::vector<BaseFact>
    signature: std::vector<BaseFact> GetUniverseConditions(const BaseFact& base_fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 210
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::GetDefaultValue
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<BaseFact>
    signature: std::vector<BaseFact> GetDefaultValue() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<BaseFact>::insert
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:213,1
    - Dst: std::vector<BaseFact>::end
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:213,1
    - Dst: std::vector<BaseFact>::begin
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:213,1
    - Dst: std::vector<BaseFact>::end
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - std::vector<BaseFact>
    - std::vector<BaseFact>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::CombineResult
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - std::vector<BaseFact>::insert
    - std::vector<BaseFact>::begin
    - std::vector<BaseFact>::end
    linkageType: ''
    returnType: std::vector<BaseFact>
    signature: "std::vector<BaseFact> CombineResult(std::vector<BaseFact> left,\n
      \                                     std::vector<BaseFact> right) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:218,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:218,1
    - Dst: MakeUniverseMembershipFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:219,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:220,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' prin'
    argTypes:
    - Principal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 224
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - name
    - IsNameConstant
    - MakeUniverseMembershipFact
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    linkageType: ''
    returnType: std::vector<BaseFact>
    signature: std::vector<BaseFact> PreVisit(const Principal& prin) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetDeclarationOrFatal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:229,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:229,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:231,1
    - Dst: std::vector::size
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:232,1
    - Dst: IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:234,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:235,1
    - Dst: MakeUniverseMembershipFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:235,1
    - Dst: datalog::RelationDeclaration::arguments
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:236,1
    - Dst: argument_type
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' pred'
    argTypes:
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 240
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - args
    - MakeUniverseMembershipFact
    - name
    - argument_type
    - IsNameConstant
    - datalog::RelationDeclaration::arguments
    - GetDeclarationOrFatal
    - std::vector::size
    linkageType: ''
    returnType: std::vector<BaseFact>
    signature: std::vector<BaseFact> Visit(const datalog::Predicate& pred) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: kind
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:31,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:37,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:37,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' arg_type'
    argTypes:
    - datalog::ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: raksha::ir::auth_logic::TypeToUniverseName
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 2
    functionsReached:
    - kind
    - name
    - absl::StrCat
    - CHECK
    linkageType: ''
    returnType: std::string
    signature: std::string TypeToUniverseName(const datalog::ArgumentType& arg_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:45,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:45,1
    - Dst: raksha::ir::auth_logic::TypeToUniverseName
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:46,1
    - Dst: std::string
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - element_name
    - ' arg_type'
    argTypes:
    - absl::string_view
    - datalog::ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: raksha::ir::auth_logic::MakeUniverseMembershipFact
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 1
    functionsReached:
    - BaseFact
    - raksha::ir::datalog::Predicate::Predicate
    - std::string
    - raksha::ir::auth_logic::TypeToUniverseName
    linkageType: ''
    returnType: BaseFact
    signature: "BaseFact MakeUniverseMembershipFact(absl::string_view element_name,\n
      \                                   const datalog::ArgumentType& arg_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:53,1
    - Dst: raksha::ir::auth_logic::TypeToUniverseName
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:53,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg_type'
    argTypes:
    - datalog::ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: raksha::ir::auth_logic::TypeToUniverseDeclaration
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 1
    functionsReached:
    - raksha::ir::datalog::RelationDeclaration::RelationDeclaration
    - raksha::ir::auth_logic::TypeToUniverseName
    - raksha::ir::datalog::Argument::Argument
    linkageType: ''
    returnType: datalog::RelationDeclaration
    signature: "datalog::RelationDeclaration TypeToUniverseDeclaration(\n    const
      datalog::ArgumentType& arg_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: literal_type_map
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:65,1
    - Dst: second::kind
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:66,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:67,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:67,1
    - Dst: literal_type_map
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:73,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:74,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:74,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:76,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:76,1
    - Dst: raksha::ir::auth_logic::MakeUniverseMembershipFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' type_env'
    argTypes:
    - TypeEnvironment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 81
    functionName: raksha::ir::auth_logic::GetUniverseDefiningFacts
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - second::kind
    - Principal
    - Fact
    - Assertion
    - raksha::ir::auth_logic::MakeUniverseMembershipFact
    - SaysAssertion
    - literal_type_map
    linkageType: ''
    returnType: std::vector<SaysAssertion>
    signature: "std::vector<SaysAssertion> GetUniverseDefiningFacts(\n    const TypeEnvironment&
      type_env)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::GetDefaultValue
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DeclSet
    signature: DeclSet GetDefaultValue() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeclSet::merge
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:93,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - DeclSet
    - DeclSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::CombineResult
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - DeclSet::merge
    - std::move
    linkageType: ''
    returnType: DeclSet
    signature: DeclSet CombineResult(DeclSet left, DeclSet right) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arguments
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:100,1
    - Dst: DeclSet::insert
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:101,1
    - Dst: TypeToUniverseDeclaration
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:102,1
    - Dst: argument_type
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' relation_declaration'
    argTypes:
    - datalog::RelationDeclaration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - arguments
    - TypeToUniverseDeclaration
    - argument_type
    - DeclSet::insert
    linkageType: ''
    returnType: DeclSet
    signature: "DeclSet Visit(\n      const datalog::RelationDeclaration& relation_declaration)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Accept
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:111,1
    - Dst: raksha::ir::auth_logic::TypeToUniverseDeclaration
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:116,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:116,1
    - Dst: raksha::ir::auth_logic::TypeToUniverseDeclaration
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:117,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:117,1
    - Dst: absl::flat_hash_set::merge
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' prog'
    argTypes:
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 120
    functionName: raksha::ir::auth_logic::GetUniverseDeclarations
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - Accept
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - raksha::ir::auth_logic::TypeToUniverseDeclaration
    - absl::flat_hash_set::merge
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: absl::flat_hash_set<datalog::RelationDeclaration>
    signature: absl::flat_hash_set<datalog::RelationDeclaration> GetUniverseDeclarations(const
      Program& prog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' decl_env'
    argTypes:
    - DeclarationEnvironment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::GroundingConditionTransformer
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GroundingConditionTransformer(const DeclarationEnvironment& decl_env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assertions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:171,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:172,1
    - Dst: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:172,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:174,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:174,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' says_assertion'
    argTypes:
    - SaysAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 3
    functionsReached:
    - principal
    - std::vector::push_back
    - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    - assertions
    - SaysAssertion
    - std::move
    linkageType: ''
    returnType: SaysAssertion
    signature: SaysAssertion AddUniverseConditions(const SaysAssertion& says_assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:179,1
    - Dst: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:180,1
    - Dst: GetValue
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' assertion'
    argTypes:
    - Assertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 4
    functionsReached:
    - GetValue
    - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    - std::visit
    linkageType: ''
    returnType: Assertion
    signature: Assertion AddUniverseConditions(const Assertion& assertion)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:185,1
    - Dst: base_fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:185,1
    - Dst: std::vector::size
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:186,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:187,1
    - Dst: ConditionalAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:187,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' fact'
    argTypes:
    - Fact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 191
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 4
    functionsReached:
    - ConditionalAssertion
    - Assertion
    - base_fact
    - raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
    - std::vector::size
    linkageType: ''
    returnType: Assertion
    signature: Assertion AddUniverseConditions(const Fact& fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lhs
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:194,1
    - Dst: raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:195,1
    - Dst: Fact::base_fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:195,1
    - Dst: absl::c_copy
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:196,1
    - Dst: rhs
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:196,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:196,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:197,1
    - Dst: ConditionalAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' cond_assertion'
    argTypes:
    - ConditionalAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 4
    functionsReached:
    - ConditionalAssertion
    - lhs
    - Assertion
    - absl::c_copy
    - std::back_inserter
    - rhs
    - Fact::base_fact
    - raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
    linkageType: ''
    returnType: Assertion
    signature: Assertion AddUniverseConditions(const ConditionalAssertion& cond_assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Accept
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' base_fact'
    argTypes:
    - BaseFact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 4
    functionsReached:
    - Accept
    linkageType: ''
    returnType: std::vector<BaseFact>
    signature: std::vector<BaseFact> GetUniverseConditions(const BaseFact& base_fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 210
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::GetDefaultValue
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<BaseFact>
    signature: std::vector<BaseFact> GetDefaultValue() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<BaseFact>::insert
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:213,1
    - Dst: std::vector<BaseFact>::end
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:213,1
    - Dst: std::vector<BaseFact>::begin
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:213,1
    - Dst: std::vector<BaseFact>::end
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - std::vector<BaseFact>
    - std::vector<BaseFact>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::CombineResult
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - std::vector<BaseFact>::insert
    - std::vector<BaseFact>::begin
    - std::vector<BaseFact>::end
    linkageType: ''
    returnType: std::vector<BaseFact>
    signature: "std::vector<BaseFact> CombineResult(std::vector<BaseFact> left,\n
      \                                     std::vector<BaseFact> right) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:218,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:218,1
    - Dst: MakeUniverseMembershipFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:219,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:220,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' prin'
    argTypes:
    - Principal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 224
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - name
    - IsNameConstant
    - MakeUniverseMembershipFact
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    linkageType: ''
    returnType: std::vector<BaseFact>
    signature: std::vector<BaseFact> PreVisit(const Principal& prin) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetDeclarationOrFatal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:229,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:229,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:231,1
    - Dst: std::vector::size
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:232,1
    - Dst: IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:234,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:235,1
    - Dst: MakeUniverseMembershipFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:235,1
    - Dst: datalog::RelationDeclaration::arguments
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:236,1
    - Dst: argument_type
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' pred'
    argTypes:
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 240
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - args
    - MakeUniverseMembershipFact
    - name
    - argument_type
    - IsNameConstant
    - datalog::RelationDeclaration::arguments
    - GetDeclarationOrFatal
    - std::vector::size
    linkageType: ''
    returnType: std::vector<BaseFact>
    signature: std::vector<BaseFact> Visit(const datalog::Predicate& pred) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::GetUniverseDefiningFacts
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:254,1
    - Dst: says_assertions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:258,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:259,1
    - Dst: GroundingConditionTransformer::AddUniverseConditions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:260,1
    - Dst: raksha::ir::auth_logic::GetUniverseDeclarations
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:266,1
    - Dst: relation_declarations
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:268,1
    - Dst: std::vector::insert
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:269,1
    - Dst: std::vector::end
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:269,1
    - Dst: absl::flat_hash_set::begin
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:269,1
    - Dst: absl::flat_hash_set::end
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:270,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:272,1
    - Dst: queries
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' prog'
    argTypes:
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 273
    functionName: raksha::ir::auth_logic::InsertUniverseRelations
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 1
    functionsReached:
    - std::vector::insert
    - std::vector::push_back
    - queries
    - raksha::ir::auth_logic::GetUniverseDefiningFacts
    - absl::flat_hash_set::begin
    - GroundingConditionTransformer::AddUniverseConditions
    - Program
    - absl::flat_hash_set::end
    - raksha::ir::auth_logic::GetUniverseDeclarations
    - std::vector::end
    - relation_declarations
    - says_assertions
    linkageType: ''
    returnType: Program
    signature: Program InsertUniverseRelations(const Program& prog)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: kind
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:31,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:37,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:37,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' arg_type'
    argTypes:
    - datalog::ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: raksha::ir::auth_logic::TypeToUniverseName
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 4
    functionsReached:
    - kind
    - name
    - absl::StrCat
    - CHECK
    linkageType: ''
    returnType: std::string
    signature: std::string TypeToUniverseName(const datalog::ArgumentType& arg_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:45,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:45,1
    - Dst: raksha::ir::auth_logic::TypeToUniverseName
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:46,1
    - Dst: std::string
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - element_name
    - ' arg_type'
    argTypes:
    - absl::string_view
    - datalog::ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: raksha::ir::auth_logic::MakeUniverseMembershipFact
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 2
    functionsReached:
    - BaseFact
    - raksha::ir::datalog::Predicate::Predicate
    - std::string
    - raksha::ir::auth_logic::TypeToUniverseName
    linkageType: ''
    returnType: BaseFact
    signature: "BaseFact MakeUniverseMembershipFact(absl::string_view element_name,\n
      \                                   const datalog::ArgumentType& arg_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:53,1
    - Dst: raksha::ir::auth_logic::TypeToUniverseName
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:53,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg_type'
    argTypes:
    - datalog::ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: raksha::ir::auth_logic::TypeToUniverseDeclaration
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 2
    functionsReached:
    - raksha::ir::datalog::RelationDeclaration::RelationDeclaration
    - raksha::ir::auth_logic::TypeToUniverseName
    - raksha::ir::datalog::Argument::Argument
    linkageType: ''
    returnType: datalog::RelationDeclaration
    signature: "datalog::RelationDeclaration TypeToUniverseDeclaration(\n    const
      datalog::ArgumentType& arg_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: literal_type_map
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:65,1
    - Dst: second::kind
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:66,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:67,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:67,1
    - Dst: literal_type_map
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:73,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:74,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:74,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:76,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:76,1
    - Dst: raksha::ir::auth_logic::MakeUniverseMembershipFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' type_env'
    argTypes:
    - TypeEnvironment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 81
    functionName: raksha::ir::auth_logic::GetUniverseDefiningFacts
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 1
    functionsReached:
    - std::vector::push_back
    - second::kind
    - Principal
    - Fact
    - Assertion
    - raksha::ir::auth_logic::MakeUniverseMembershipFact
    - SaysAssertion
    - literal_type_map
    linkageType: ''
    returnType: std::vector<SaysAssertion>
    signature: "std::vector<SaysAssertion> GetUniverseDefiningFacts(\n    const TypeEnvironment&
      type_env)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::GetDefaultValue
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DeclSet
    signature: DeclSet GetDefaultValue() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeclSet::merge
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:93,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - DeclSet
    - DeclSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::CombineResult
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - DeclSet::merge
    - std::move
    linkageType: ''
    returnType: DeclSet
    signature: DeclSet CombineResult(DeclSet left, DeclSet right) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arguments
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:100,1
    - Dst: DeclSet::insert
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:101,1
    - Dst: TypeToUniverseDeclaration
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:102,1
    - Dst: argument_type
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' relation_declaration'
    argTypes:
    - datalog::RelationDeclaration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - arguments
    - TypeToUniverseDeclaration
    - argument_type
    - DeclSet::insert
    linkageType: ''
    returnType: DeclSet
    signature: "DeclSet Visit(\n      const datalog::RelationDeclaration& relation_declaration)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Accept
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:111,1
    - Dst: raksha::ir::auth_logic::TypeToUniverseDeclaration
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:116,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:116,1
    - Dst: raksha::ir::auth_logic::TypeToUniverseDeclaration
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:117,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:117,1
    - Dst: absl::flat_hash_set::merge
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' prog'
    argTypes:
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 120
    functionName: raksha::ir::auth_logic::GetUniverseDeclarations
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 1
    functionsReached:
    - Accept
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - raksha::ir::auth_logic::TypeToUniverseDeclaration
    - absl::flat_hash_set::merge
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: absl::flat_hash_set<datalog::RelationDeclaration>
    signature: absl::flat_hash_set<datalog::RelationDeclaration> GetUniverseDeclarations(const
      Program& prog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' decl_env'
    argTypes:
    - DeclarationEnvironment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::GroundingConditionTransformer
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GroundingConditionTransformer(const DeclarationEnvironment& decl_env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assertions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:171,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:172,1
    - Dst: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:172,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:174,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:174,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' says_assertion'
    argTypes:
    - SaysAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 5
    functionsReached:
    - principal
    - std::vector::push_back
    - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    - assertions
    - SaysAssertion
    - std::move
    linkageType: ''
    returnType: SaysAssertion
    signature: SaysAssertion AddUniverseConditions(const SaysAssertion& says_assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:179,1
    - Dst: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:180,1
    - Dst: GetValue
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' assertion'
    argTypes:
    - Assertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 6
    functionsReached:
    - GetValue
    - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    - std::visit
    linkageType: ''
    returnType: Assertion
    signature: Assertion AddUniverseConditions(const Assertion& assertion)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:185,1
    - Dst: base_fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:185,1
    - Dst: std::vector::size
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:186,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:187,1
    - Dst: ConditionalAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:187,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' fact'
    argTypes:
    - Fact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 191
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 6
    functionsReached:
    - ConditionalAssertion
    - Assertion
    - base_fact
    - raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
    - std::vector::size
    linkageType: ''
    returnType: Assertion
    signature: Assertion AddUniverseConditions(const Fact& fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lhs
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:194,1
    - Dst: raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:195,1
    - Dst: Fact::base_fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:195,1
    - Dst: absl::c_copy
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:196,1
    - Dst: rhs
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:196,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:196,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:197,1
    - Dst: ConditionalAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' cond_assertion'
    argTypes:
    - ConditionalAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 6
    functionsReached:
    - ConditionalAssertion
    - lhs
    - Assertion
    - absl::c_copy
    - std::back_inserter
    - rhs
    - Fact::base_fact
    - raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
    linkageType: ''
    returnType: Assertion
    signature: Assertion AddUniverseConditions(const ConditionalAssertion& cond_assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Accept
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' base_fact'
    argTypes:
    - BaseFact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 6
    functionsReached:
    - Accept
    linkageType: ''
    returnType: std::vector<BaseFact>
    signature: std::vector<BaseFact> GetUniverseConditions(const BaseFact& base_fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 210
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::GetDefaultValue
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<BaseFact>
    signature: std::vector<BaseFact> GetDefaultValue() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<BaseFact>::insert
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:213,1
    - Dst: std::vector<BaseFact>::end
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:213,1
    - Dst: std::vector<BaseFact>::begin
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:213,1
    - Dst: std::vector<BaseFact>::end
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - std::vector<BaseFact>
    - std::vector<BaseFact>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::CombineResult
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - std::vector<BaseFact>::insert
    - std::vector<BaseFact>::begin
    - std::vector<BaseFact>::end
    linkageType: ''
    returnType: std::vector<BaseFact>
    signature: "std::vector<BaseFact> CombineResult(std::vector<BaseFact> left,\n
      \                                     std::vector<BaseFact> right) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:218,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:218,1
    - Dst: MakeUniverseMembershipFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:219,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:220,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' prin'
    argTypes:
    - Principal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 224
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - name
    - IsNameConstant
    - MakeUniverseMembershipFact
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    linkageType: ''
    returnType: std::vector<BaseFact>
    signature: std::vector<BaseFact> PreVisit(const Principal& prin) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetDeclarationOrFatal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:229,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:229,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:231,1
    - Dst: std::vector::size
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:232,1
    - Dst: IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:234,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:235,1
    - Dst: MakeUniverseMembershipFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:235,1
    - Dst: datalog::RelationDeclaration::arguments
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:236,1
    - Dst: argument_type
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' pred'
    argTypes:
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 240
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - args
    - MakeUniverseMembershipFact
    - name
    - argument_type
    - IsNameConstant
    - datalog::RelationDeclaration::arguments
    - GetDeclarationOrFatal
    - std::vector::size
    linkageType: ''
    returnType: std::vector<BaseFact>
    signature: std::vector<BaseFact> Visit(const datalog::Predicate& pred) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: kind
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:31,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:37,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:37,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' arg_type'
    argTypes:
    - datalog::ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: raksha::ir::auth_logic::TypeToUniverseName
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 6
    functionsReached:
    - kind
    - name
    - absl::StrCat
    - CHECK
    linkageType: ''
    returnType: std::string
    signature: std::string TypeToUniverseName(const datalog::ArgumentType& arg_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:45,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:45,1
    - Dst: raksha::ir::auth_logic::TypeToUniverseName
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:46,1
    - Dst: std::string
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - element_name
    - ' arg_type'
    argTypes:
    - absl::string_view
    - datalog::ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: raksha::ir::auth_logic::MakeUniverseMembershipFact
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 3
    functionsReached:
    - BaseFact
    - raksha::ir::datalog::Predicate::Predicate
    - std::string
    - raksha::ir::auth_logic::TypeToUniverseName
    linkageType: ''
    returnType: BaseFact
    signature: "BaseFact MakeUniverseMembershipFact(absl::string_view element_name,\n
      \                                   const datalog::ArgumentType& arg_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:53,1
    - Dst: raksha::ir::auth_logic::TypeToUniverseName
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:53,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg_type'
    argTypes:
    - datalog::ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: raksha::ir::auth_logic::TypeToUniverseDeclaration
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 3
    functionsReached:
    - raksha::ir::datalog::RelationDeclaration::RelationDeclaration
    - raksha::ir::auth_logic::TypeToUniverseName
    - raksha::ir::datalog::Argument::Argument
    linkageType: ''
    returnType: datalog::RelationDeclaration
    signature: "datalog::RelationDeclaration TypeToUniverseDeclaration(\n    const
      datalog::ArgumentType& arg_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: literal_type_map
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:65,1
    - Dst: second::kind
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:66,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:67,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:67,1
    - Dst: literal_type_map
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:73,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:74,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:74,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:76,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:76,1
    - Dst: raksha::ir::auth_logic::MakeUniverseMembershipFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' type_env'
    argTypes:
    - TypeEnvironment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 81
    functionName: raksha::ir::auth_logic::GetUniverseDefiningFacts
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 1
    functionsReached:
    - std::vector::push_back
    - second::kind
    - Principal
    - Fact
    - Assertion
    - raksha::ir::auth_logic::MakeUniverseMembershipFact
    - SaysAssertion
    - literal_type_map
    linkageType: ''
    returnType: std::vector<SaysAssertion>
    signature: "std::vector<SaysAssertion> GetUniverseDefiningFacts(\n    const TypeEnvironment&
      type_env)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::GetDefaultValue
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DeclSet
    signature: DeclSet GetDefaultValue() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeclSet::merge
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:93,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - DeclSet
    - DeclSet
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::CombineResult
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - DeclSet::merge
    - std::move
    linkageType: ''
    returnType: DeclSet
    signature: DeclSet CombineResult(DeclSet left, DeclSet right) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arguments
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:100,1
    - Dst: DeclSet::insert
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:101,1
    - Dst: TypeToUniverseDeclaration
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:102,1
    - Dst: argument_type
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' relation_declaration'
    argTypes:
    - datalog::RelationDeclaration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - arguments
    - TypeToUniverseDeclaration
    - argument_type
    - DeclSet::insert
    linkageType: ''
    returnType: DeclSet
    signature: "DeclSet Visit(\n      const datalog::RelationDeclaration& relation_declaration)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Accept
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:111,1
    - Dst: raksha::ir::auth_logic::TypeToUniverseDeclaration
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:116,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:116,1
    - Dst: raksha::ir::auth_logic::TypeToUniverseDeclaration
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:117,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:117,1
    - Dst: absl::flat_hash_set::merge
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' prog'
    argTypes:
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 120
    functionName: raksha::ir::auth_logic::GetUniverseDeclarations
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 1
    functionsReached:
    - Accept
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - raksha::ir::auth_logic::TypeToUniverseDeclaration
    - absl::flat_hash_set::merge
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: absl::flat_hash_set<datalog::RelationDeclaration>
    signature: absl::flat_hash_set<datalog::RelationDeclaration> GetUniverseDeclarations(const
      Program& prog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' decl_env'
    argTypes:
    - DeclarationEnvironment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::GroundingConditionTransformer
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GroundingConditionTransformer(const DeclarationEnvironment& decl_env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assertions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:171,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:172,1
    - Dst: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:172,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:174,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:174,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' says_assertion'
    argTypes:
    - SaysAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 7
    functionsReached:
    - principal
    - std::vector::push_back
    - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    - assertions
    - SaysAssertion
    - std::move
    linkageType: ''
    returnType: SaysAssertion
    signature: SaysAssertion AddUniverseConditions(const SaysAssertion& says_assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:179,1
    - Dst: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:180,1
    - Dst: GetValue
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' assertion'
    argTypes:
    - Assertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 8
    functionsReached:
    - GetValue
    - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    - std::visit
    linkageType: ''
    returnType: Assertion
    signature: Assertion AddUniverseConditions(const Assertion& assertion)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:185,1
    - Dst: base_fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:185,1
    - Dst: std::vector::size
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:186,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:187,1
    - Dst: ConditionalAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:187,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' fact'
    argTypes:
    - Fact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 191
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 8
    functionsReached:
    - ConditionalAssertion
    - Assertion
    - base_fact
    - raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
    - std::vector::size
    linkageType: ''
    returnType: Assertion
    signature: Assertion AddUniverseConditions(const Fact& fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lhs
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:194,1
    - Dst: raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:195,1
    - Dst: Fact::base_fact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:195,1
    - Dst: absl::c_copy
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:196,1
    - Dst: rhs
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:196,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:196,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:197,1
    - Dst: ConditionalAssertion
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' cond_assertion'
    argTypes:
    - ConditionalAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 8
    functionsReached:
    - ConditionalAssertion
    - lhs
    - Assertion
    - absl::c_copy
    - std::back_inserter
    - rhs
    - Fact::base_fact
    - raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
    linkageType: ''
    returnType: Assertion
    signature: Assertion AddUniverseConditions(const ConditionalAssertion& cond_assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Accept
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' base_fact'
    argTypes:
    - BaseFact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 8
    functionsReached:
    - Accept
    linkageType: ''
    returnType: std::vector<BaseFact>
    signature: std::vector<BaseFact> GetUniverseConditions(const BaseFact& base_fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 210
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::GetDefaultValue
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<BaseFact>
    signature: std::vector<BaseFact> GetDefaultValue() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<BaseFact>::insert
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:213,1
    - Dst: std::vector<BaseFact>::end
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:213,1
    - Dst: std::vector<BaseFact>::begin
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:213,1
    - Dst: std::vector<BaseFact>::end
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - std::vector<BaseFact>
    - std::vector<BaseFact>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::CombineResult
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - std::vector<BaseFact>::insert
    - std::vector<BaseFact>::begin
    - std::vector<BaseFact>::end
    linkageType: ''
    returnType: std::vector<BaseFact>
    signature: "std::vector<BaseFact> CombineResult(std::vector<BaseFact> left,\n
      \                                     std::vector<BaseFact> right) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:218,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:218,1
    - Dst: MakeUniverseMembershipFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:219,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:220,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' prin'
    argTypes:
    - Principal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 224
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - name
    - IsNameConstant
    - MakeUniverseMembershipFact
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    linkageType: ''
    returnType: std::vector<BaseFact>
    signature: std::vector<BaseFact> PreVisit(const Principal& prin) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetDeclarationOrFatal
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:229,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:229,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:231,1
    - Dst: std::vector::size
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:232,1
    - Dst: IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:234,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:235,1
    - Dst: MakeUniverseMembershipFact
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:235,1
    - Dst: datalog::RelationDeclaration::arguments
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:236,1
    - Dst: argument_type
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' pred'
    argTypes:
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 240
    functionName: raksha::ir::auth_logic::GroundingConditionTransformer::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - args
    - MakeUniverseMembershipFact
    - name
    - argument_type
    - IsNameConstant
    - datalog::RelationDeclaration::arguments
    - GetDeclarationOrFatal
    - std::vector::size
    linkageType: ''
    returnType: std::vector<BaseFact>
    signature: std::vector<BaseFact> Visit(const datalog::Predicate& pred) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::GetUniverseDefiningFacts
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:254,1
    - Dst: says_assertions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:258,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:259,1
    - Dst: GroundingConditionTransformer::AddUniverseConditions
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:260,1
    - Dst: raksha::ir::auth_logic::GetUniverseDeclarations
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:266,1
    - Dst: relation_declarations
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:268,1
    - Dst: std::vector::insert
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:269,1
    - Dst: std::vector::end
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:269,1
    - Dst: absl::flat_hash_set::begin
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:269,1
    - Dst: absl::flat_hash_set::end
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:270,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:272,1
    - Dst: queries
      Src: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' prog'
    argTypes:
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 273
    functionName: raksha::ir::auth_logic::InsertUniverseRelations
    functionSourceFile: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
    functionUses: 1
    functionsReached:
    - std::vector::insert
    - std::vector::push_back
    - queries
    - raksha::ir::auth_logic::GetUniverseDefiningFacts
    - absl::flat_hash_set::begin
    - GroundingConditionTransformer::AddUniverseConditions
    - Program
    - absl::flat_hash_set::end
    - raksha::ir::auth_logic::GetUniverseDeclarations
    - std::vector::end
    - relation_declarations
    - says_assertions
    linkageType: ''
    returnType: Program
    signature: Program InsertUniverseRelations(const Program& prog)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Get
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - LOG
    linkageType: ''
    returnType: ValueType
    signature: ValueType Get()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ValueType
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Get
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - ValueType
    linkageType: ''
    returnType: ValueType
    signature: ValueType Get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: ~AuthLogicAstTraversingVisitor()
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~AuthLogicAstTraversingVisitor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRTraversingVisitor::Get
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - raksha::ir::IRTraversingVisitor::Get
    linkageType: ''
    returnType: Result
    signature: Result GetDefaultValue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left_result
    - right_result
    argTypes:
    - Result
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result CombineResult(Result left_result, Result right_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' principal'
    argTypes:
    - CopyConst<IsConst, Principal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(CopyConst<IsConst, Principal>& principal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' principal'
    - in_order_result
    argTypes:
    - CopyConst<IsConst, Principal>
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result PostVisit(CopyConst<IsConst, Principal>& principal,\n                           Result
      in_order_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' attribute'
    argTypes:
    - CopyConst<IsConst, Attribute>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(CopyConst<IsConst, Attribute>& attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' attribute'
    - in_order_result
    argTypes:
    - CopyConst<IsConst, Attribute>
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result PostVisit(CopyConst<IsConst, Attribute>& attribute,\n                           Result
      in_order_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' can_act_as'
    argTypes:
    - CopyConst<IsConst, CanActAs>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(CopyConst<IsConst, CanActAs>& can_act_as)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' can_act_as'
    - in_order_result
    argTypes:
    - CopyConst<IsConst, CanActAs>
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result PostVisit(CopyConst<IsConst, CanActAs>& can_act_as,\n                           Result
      in_order_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' base_fact'
    argTypes:
    - CopyConst<IsConst, BaseFact>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(CopyConst<IsConst, BaseFact>& base_fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' base_fact'
    - in_order_result
    argTypes:
    - CopyConst<IsConst, BaseFact>
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result PostVisit(CopyConst<IsConst, BaseFact>& base_fact,\n                           Result
      in_order_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' fact'
    argTypes:
    - CopyConst<IsConst, Fact>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(CopyConst<IsConst, Fact>& fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' fact'
    - in_order_result
    argTypes:
    - CopyConst<IsConst, Fact>
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result PostVisit(CopyConst<IsConst, Fact>& fact,\n                           Result
      in_order_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' conditional_assertion'
    argTypes:
    - CopyConst<IsConst, ConditionalAssertion>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: "Result PreVisit(\n      CopyConst<IsConst, ConditionalAssertion>&
      conditional_assertion)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' conditional_assertion'
    - in_order_result
    argTypes:
    - CopyConst<IsConst, ConditionalAssertion>
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result PostVisit(\n      CopyConst<IsConst, ConditionalAssertion>&
      conditional_assertion,\n      Result in_order_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' assertion'
    argTypes:
    - CopyConst<IsConst, Assertion>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(CopyConst<IsConst, Assertion>& assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' assertion'
    - in_order_result
    argTypes:
    - CopyConst<IsConst, Assertion>
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result PostVisit(CopyConst<IsConst, Assertion>& assertion,\n                           Result
      in_order_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' says_assertion'
    argTypes:
    - CopyConst<IsConst, SaysAssertion>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(CopyConst<IsConst, SaysAssertion>& says_assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' says_assertion'
    - in_order_result
    argTypes:
    - CopyConst<IsConst, SaysAssertion>
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result PostVisit(CopyConst<IsConst, SaysAssertion>& says_assertion,\n
      \                          Result in_order_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' query'
    argTypes:
    - CopyConst<IsConst, Query>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(CopyConst<IsConst, Query>& query)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' query'
    - in_order_result
    argTypes:
    - CopyConst<IsConst, Query>
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result PostVisit(CopyConst<IsConst, Query>& query,\n                           Result
      in_order_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' program'
    argTypes:
    - CopyConst<IsConst, Program>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(CopyConst<IsConst, Program>& program)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' program'
    - in_order_result
    argTypes:
    - CopyConst<IsConst, Program>
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result PostVisit(CopyConst<IsConst, Program>& program,\n                           Result
      in_order_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' relation_declaration'
    argTypes:
    - CopyConst<IsConst, datalog::RelationDeclaration>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: "Result Visit(\n      CopyConst<IsConst, datalog::RelationDeclaration>&
      relation_declaration)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' predicate'
    argTypes:
    - CopyConst<IsConst, datalog::Predicate>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result Visit(CopyConst<IsConst, datalog::Predicate>& predicate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:176,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:177,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' principal'
    argTypes:
    - CopyConst<IsConst, Principal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - std::move
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    linkageType: ''
    returnType: Result
    signature: Result Visit(CopyConst<IsConst, Principal>& principal) final override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:181,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:183,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:183,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:183,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:184,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:187,1
    - Dst: predicate
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:187,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:188,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' attribute'
    argTypes:
    - CopyConst<IsConst, Attribute>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 189
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 1
    functionsReached:
    - principal
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    - std::move
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
    - predicate
    linkageType: ''
    returnType: Result
    signature: Result Visit(CopyConst<IsConst, Attribute>& attribute) final override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:192,1
    - Dst: left_principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:193,1
    - Dst: right_principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:194,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:197,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:198,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:198,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:198,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:200,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' can_act_as'
    argTypes:
    - CopyConst<IsConst, CanActAs>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 201
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 1
    functionsReached:
    - right_principal
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    - std::move
    - left_principal
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
    linkageType: ''
    returnType: Result
    signature: Result Visit(CopyConst<IsConst, CanActAs>& can_act_as) final override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:204,1
    - Dst: std::visit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:205,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:208,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:210,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:212,1
    - Dst: GetValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:214,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:215,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:215,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:216,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:217,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' base_fact'
    argTypes:
    - CopyConst<IsConst, BaseFact>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 218
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 1
    functionsReached:
    - GetValue
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
    - std::visit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    - std::move
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
    linkageType: ''
    returnType: Result
    signature: Result Visit(CopyConst<IsConst, BaseFact>& base_fact) final override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:221,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::FoldAccept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:222,1
    - Dst: delegation_chain
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:223,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:225,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:225,1
    - Dst: base_fact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:225,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:226,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' fact'
    argTypes:
    - CopyConst<IsConst, Fact>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 227
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 1
    functionsReached:
    - delegation_chain
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    - std::move
    - base_fact
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::FoldAccept
    linkageType: ''
    returnType: Result
    signature: Result Visit(CopyConst<IsConst, Fact>& fact) final override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:231,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:232,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:233,1
    - Dst: lhs
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:233,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::FoldAccept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:234,1
    - Dst: rhs
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:235,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:236,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' conditional_assertion'
    argTypes:
    - CopyConst<IsConst, ConditionalAssertion>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 237
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 1
    functionsReached:
    - lhs
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    - std::move
    - rhs
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::FoldAccept
    linkageType: ''
    returnType: Result
    signature: "Result Visit(CopyConst<IsConst, ConditionalAssertion>& conditional_assertion)\n
      \     final override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:240,1
    - Dst: std::visit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:242,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:243,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:245,1
    - Dst: GetValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:247,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:248,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:248,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:249,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:250,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' assertion'
    argTypes:
    - CopyConst<IsConst, Assertion>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 251
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 1
    functionsReached:
    - GetValue
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
    - std::visit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    - std::move
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
    linkageType: ''
    returnType: Result
    signature: Result Visit(CopyConst<IsConst, Assertion>& assertion) final override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:255,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:256,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:257,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:257,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::FoldAccept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:258,1
    - Dst: assertions
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:259,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' says_assertion'
    argTypes:
    - CopyConst<IsConst, SaysAssertion>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 261
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 1
    functionsReached:
    - principal
    - assertions
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    - std::move
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::FoldAccept
    linkageType: ''
    returnType: Result
    signature: "Result Visit(\n      CopyConst<IsConst, SaysAssertion>& says_assertion)
      final override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:264,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:265,1
    - Dst: fact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:266,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:269,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:270,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:271,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:271,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:271,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' query'
    argTypes:
    - CopyConst<IsConst, Query>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 273
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 1
    functionsReached:
    - principal
    - fact
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    - std::move
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
    linkageType: ''
    returnType: Result
    signature: Result Visit(CopyConst<IsConst, Query>& query) final override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:276,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:277,1
    - Dst: relation_declarations
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:278,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:278,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:283,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:283,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:283,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::FoldAccept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:286,1
    - Dst: says_assertions
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:287,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::FoldAccept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:288,1
    - Dst: queries
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:289,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' program'
    argTypes:
    - CopyConst<IsConst, Program>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 291
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 2
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    - queries
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    - raksha::common::utils::fold
    - std::move
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
    - relation_declarations
    - says_assertions
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::FoldAccept
    linkageType: ''
    returnType: Result
    signature: Result Visit(CopyConst<IsConst, Program>& program) final override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - predicate
    argTypes:
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 2
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    linkageType: ''
    returnType: Result
    signature: Result VariantVisit(datalog::Predicate predicate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Attribute::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - attribute
    argTypes:
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 302
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 2
    functionsReached:
    - Attribute::Accept
    linkageType: ''
    returnType: Result
    signature: Result VariantVisit(Attribute attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CanActAs::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - can_act_as
    argTypes:
    - CanActAs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 2
    functionsReached:
    - CanActAs::Accept
    linkageType: ''
    returnType: Result
    signature: Result VariantVisit(CanActAs can_act_as)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fact::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fact
    argTypes:
    - Fact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 306
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 2
    functionsReached:
    - Fact::Accept
    linkageType: ''
    returnType: Result
    signature: Result VariantVisit(Fact fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConditionalAssertion::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conditional_assertion
    argTypes:
    - ConditionalAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 2
    functionsReached:
    - ConditionalAssertion::Accept
    linkageType: ''
    returnType: Result
    signature: Result VariantVisit(ConditionalAssertion conditional_assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:314,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:315,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:317,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:317,1
    - Dst: Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - container
    - initial
    argTypes:
    - Container
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::FoldAccept
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 4
    functionsReached:
    - Accept
    - raksha::common::utils::fold
    - std::move
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
    linkageType: ''
    returnType: Result
    signature: Result FoldAccept(Container container, Result initial)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Get
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - LOG
    linkageType: ''
    returnType: ValueType
    signature: ValueType Get()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ValueType
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Get
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached:
    - ValueType
    linkageType: ''
    returnType: ValueType
    signature: ValueType Get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: ~AuthLogicAstTraversingVisitor()
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~AuthLogicAstTraversingVisitor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::IRTraversingVisitor::Get
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 12
    functionsReached:
    - raksha::ir::IRTraversingVisitor::Get
    linkageType: ''
    returnType: Result
    signature: Result GetDefaultValue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left_result
    - right_result
    argTypes:
    - Result
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result CombineResult(Result left_result, Result right_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' principal'
    argTypes:
    - CopyConst<IsConst, Principal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 10
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(CopyConst<IsConst, Principal>& principal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' principal'
    - in_order_result
    argTypes:
    - CopyConst<IsConst, Principal>
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result PostVisit(CopyConst<IsConst, Principal>& principal,\n                           Result
      in_order_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' attribute'
    argTypes:
    - CopyConst<IsConst, Attribute>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 10
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(CopyConst<IsConst, Attribute>& attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' attribute'
    - in_order_result
    argTypes:
    - CopyConst<IsConst, Attribute>
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result PostVisit(CopyConst<IsConst, Attribute>& attribute,\n                           Result
      in_order_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' can_act_as'
    argTypes:
    - CopyConst<IsConst, CanActAs>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 10
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(CopyConst<IsConst, CanActAs>& can_act_as)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' can_act_as'
    - in_order_result
    argTypes:
    - CopyConst<IsConst, CanActAs>
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result PostVisit(CopyConst<IsConst, CanActAs>& can_act_as,\n                           Result
      in_order_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' base_fact'
    argTypes:
    - CopyConst<IsConst, BaseFact>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 10
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(CopyConst<IsConst, BaseFact>& base_fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' base_fact'
    - in_order_result
    argTypes:
    - CopyConst<IsConst, BaseFact>
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result PostVisit(CopyConst<IsConst, BaseFact>& base_fact,\n                           Result
      in_order_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' fact'
    argTypes:
    - CopyConst<IsConst, Fact>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 10
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(CopyConst<IsConst, Fact>& fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' fact'
    - in_order_result
    argTypes:
    - CopyConst<IsConst, Fact>
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result PostVisit(CopyConst<IsConst, Fact>& fact,\n                           Result
      in_order_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' conditional_assertion'
    argTypes:
    - CopyConst<IsConst, ConditionalAssertion>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 10
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: "Result PreVisit(\n      CopyConst<IsConst, ConditionalAssertion>&
      conditional_assertion)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' conditional_assertion'
    - in_order_result
    argTypes:
    - CopyConst<IsConst, ConditionalAssertion>
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result PostVisit(\n      CopyConst<IsConst, ConditionalAssertion>&
      conditional_assertion,\n      Result in_order_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' assertion'
    argTypes:
    - CopyConst<IsConst, Assertion>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 10
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(CopyConst<IsConst, Assertion>& assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' assertion'
    - in_order_result
    argTypes:
    - CopyConst<IsConst, Assertion>
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result PostVisit(CopyConst<IsConst, Assertion>& assertion,\n                           Result
      in_order_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' says_assertion'
    argTypes:
    - CopyConst<IsConst, SaysAssertion>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 10
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(CopyConst<IsConst, SaysAssertion>& says_assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' says_assertion'
    - in_order_result
    argTypes:
    - CopyConst<IsConst, SaysAssertion>
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result PostVisit(CopyConst<IsConst, SaysAssertion>& says_assertion,\n
      \                          Result in_order_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' query'
    argTypes:
    - CopyConst<IsConst, Query>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 10
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(CopyConst<IsConst, Query>& query)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' query'
    - in_order_result
    argTypes:
    - CopyConst<IsConst, Query>
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result PostVisit(CopyConst<IsConst, Query>& query,\n                           Result
      in_order_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' program'
    argTypes:
    - CopyConst<IsConst, Program>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 10
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result PreVisit(CopyConst<IsConst, Program>& program)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' program'
    - in_order_result
    argTypes:
    - CopyConst<IsConst, Program>
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result PostVisit(CopyConst<IsConst, Program>& program,\n                           Result
      in_order_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' relation_declaration'
    argTypes:
    - CopyConst<IsConst, datalog::RelationDeclaration>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 3
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: "Result Visit(\n      CopyConst<IsConst, datalog::RelationDeclaration>&
      relation_declaration)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' predicate'
    argTypes:
    - CopyConst<IsConst, datalog::Predicate>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 3
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
    linkageType: ''
    returnType: Result
    signature: Result Visit(CopyConst<IsConst, datalog::Predicate>& predicate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:176,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:177,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' principal'
    argTypes:
    - CopyConst<IsConst, Principal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 3
    functionsReached:
    - std::move
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    linkageType: ''
    returnType: Result
    signature: Result Visit(CopyConst<IsConst, Principal>& principal) final override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:181,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:183,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:183,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:183,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:184,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:187,1
    - Dst: predicate
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:187,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:188,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' attribute'
    argTypes:
    - CopyConst<IsConst, Attribute>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 189
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 4
    functionsReached:
    - principal
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    - std::move
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
    - predicate
    linkageType: ''
    returnType: Result
    signature: Result Visit(CopyConst<IsConst, Attribute>& attribute) final override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:192,1
    - Dst: left_principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:193,1
    - Dst: right_principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:194,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:197,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:198,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:198,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:198,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:200,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' can_act_as'
    argTypes:
    - CopyConst<IsConst, CanActAs>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 201
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 4
    functionsReached:
    - right_principal
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    - std::move
    - left_principal
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
    linkageType: ''
    returnType: Result
    signature: Result Visit(CopyConst<IsConst, CanActAs>& can_act_as) final override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:204,1
    - Dst: std::visit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:205,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:208,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:210,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:212,1
    - Dst: GetValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:214,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:215,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:215,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:216,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:217,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' base_fact'
    argTypes:
    - CopyConst<IsConst, BaseFact>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 203
    functionDepth: 4
    functionLinenumber: 203
    functionLinenumberEnd: 218
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 4
    functionsReached:
    - GetValue
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
    - std::visit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    - std::move
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
    linkageType: ''
    returnType: Result
    signature: Result Visit(CopyConst<IsConst, BaseFact>& base_fact) final override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:221,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::FoldAccept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:222,1
    - Dst: delegation_chain
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:223,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:225,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:225,1
    - Dst: base_fact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:225,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:226,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' fact'
    argTypes:
    - CopyConst<IsConst, Fact>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 227
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 4
    functionsReached:
    - delegation_chain
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    - std::move
    - base_fact
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::FoldAccept
    linkageType: ''
    returnType: Result
    signature: Result Visit(CopyConst<IsConst, Fact>& fact) final override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:231,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:232,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:233,1
    - Dst: lhs
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:233,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::FoldAccept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:234,1
    - Dst: rhs
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:235,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:236,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' conditional_assertion'
    argTypes:
    - CopyConst<IsConst, ConditionalAssertion>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 237
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 4
    functionsReached:
    - lhs
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    - std::move
    - rhs
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::FoldAccept
    linkageType: ''
    returnType: Result
    signature: "Result Visit(CopyConst<IsConst, ConditionalAssertion>& conditional_assertion)\n
      \     final override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:240,1
    - Dst: std::visit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:242,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:243,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:245,1
    - Dst: GetValue
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:247,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:248,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:248,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:249,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:250,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' assertion'
    argTypes:
    - CopyConst<IsConst, Assertion>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 239
    functionDepth: 4
    functionLinenumber: 239
    functionLinenumberEnd: 251
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 4
    functionsReached:
    - GetValue
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
    - std::visit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    - std::move
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
    linkageType: ''
    returnType: Result
    signature: Result Visit(CopyConst<IsConst, Assertion>& assertion) final override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:255,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:256,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:257,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:257,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::FoldAccept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:258,1
    - Dst: assertions
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:259,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' says_assertion'
    argTypes:
    - CopyConst<IsConst, SaysAssertion>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 261
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 4
    functionsReached:
    - principal
    - assertions
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    - std::move
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::FoldAccept
    linkageType: ''
    returnType: Result
    signature: "Result Visit(\n      CopyConst<IsConst, SaysAssertion>& says_assertion)
      final override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:264,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:265,1
    - Dst: fact
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:266,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:269,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:270,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:271,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:271,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:271,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' query'
    argTypes:
    - CopyConst<IsConst, Query>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 273
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 4
    functionsReached:
    - principal
    - fact
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    - std::move
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
    linkageType: ''
    returnType: Result
    signature: Result Visit(CopyConst<IsConst, Query>& query) final override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:276,1
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:277,1
    - Dst: relation_declarations
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:278,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:278,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:283,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:283,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:283,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::FoldAccept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:286,1
    - Dst: says_assertions
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:287,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::FoldAccept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:288,1
    - Dst: queries
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:289,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' program'
    argTypes:
    - CopyConst<IsConst, Program>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 291
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 5
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    - queries
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
    - raksha::common::utils::fold
    - std::move
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
    - relation_declarations
    - says_assertions
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::FoldAccept
    linkageType: ''
    returnType: Result
    signature: Result Visit(CopyConst<IsConst, Program>& program) final override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - predicate
    argTypes:
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 4
    functionsReached:
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
    linkageType: ''
    returnType: Result
    signature: Result VariantVisit(datalog::Predicate predicate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Attribute::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - attribute
    argTypes:
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 302
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 4
    functionsReached:
    - Attribute::Accept
    linkageType: ''
    returnType: Result
    signature: Result VariantVisit(Attribute attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CanActAs::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - can_act_as
    argTypes:
    - CanActAs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 4
    functionsReached:
    - CanActAs::Accept
    linkageType: ''
    returnType: Result
    signature: Result VariantVisit(CanActAs can_act_as)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fact::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fact
    argTypes:
    - Fact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 306
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 4
    functionsReached:
    - Fact::Accept
    linkageType: ''
    returnType: Result
    signature: Result VariantVisit(Fact fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConditionalAssertion::Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conditional_assertion
    argTypes:
    - ConditionalAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 4
    functionsReached:
    - ConditionalAssertion::Accept
    linkageType: ''
    returnType: Result
    signature: Result VariantVisit(ConditionalAssertion conditional_assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:314,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:315,1
    - Dst: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:317,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:317,1
    - Dst: Accept
      Src: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - container
    - initial
    argTypes:
    - Container
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::FoldAccept
    functionSourceFile: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    functionUses: 8
    functionsReached:
    - Accept
    - raksha::common::utils::fold
    - std::move
    - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
    linkageType: ''
    returnType: Result
    signature: Result FoldAccept(Container container, Result initial)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:48,1
    - Dst: raksha::ir::auth_logic::ParseProgram
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:49,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:50,1
    - Dst: Program::relation_declarations
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:50,1
    - Dst: Program::relation_declarations
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:52,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:53,1
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:53,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:54,1
    - Dst: is_attribute
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:55,1
    - Dst: arguments
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:55,1
    - Dst: size
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:55,1
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:56,1
    - Dst: arguments
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:57,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:58,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:59,1
    - Dst: ::testing::UnorderedElementsAreArray
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 46
    functionDepth: 9
    functionLinenumber: 46
    functionLinenumberEnd: 60
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - utils::MapIter<std::string>
    - arguments
    - raksha::ir::auth_logic::ParseProgram
    - Program::relation_declarations
    - is_attribute
    - raksha::ir::auth_logic::ToString
    - EXPECT_THAT
    - ASSERT_EQ
    - size
    - ::testing::UnorderedElementsAreArray
    - GetParam
    - relation_name
    linkageType: ''
    returnType: void
    signature: "void TEST_P(RelationDeclarationAstConstructionTest,\n       SimpleTestWithRelationDeclarationProgram)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:48,1
    - Dst: raksha::ir::auth_logic::ParseProgram
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:49,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:50,1
    - Dst: Program::relation_declarations
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:50,1
    - Dst: Program::relation_declarations
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:52,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:53,1
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:53,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:54,1
    - Dst: is_attribute
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:55,1
    - Dst: arguments
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:55,1
    - Dst: size
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:55,1
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:56,1
    - Dst: arguments
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:57,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:58,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:59,1
    - Dst: ::testing::UnorderedElementsAreArray
      Src: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 46
    functionDepth: 9
    functionLinenumber: 46
    functionLinenumberEnd: 60
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - utils::MapIter<std::string>
    - arguments
    - raksha::ir::auth_logic::ParseProgram
    - Program::relation_declarations
    - is_attribute
    - raksha::ir::auth_logic::ToString
    - EXPECT_THAT
    - ASSERT_EQ
    - size
    - ::testing::UnorderedElementsAreArray
    - GetParam
    - relation_name
    linkageType: ''
    returnType: void
    signature: "void TEST_P(RelationDeclarationAstConstructionTest,\n       SimpleTestWithRelationDeclarationProgram)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - decl_env
    argTypes:
    - DeclarationEnvironment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::TypeEnvironmentGenerationVisitor
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TypeEnvironmentGenerationVisitor(DeclarationEnvironment decl_env)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::literal_type_map
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LiteralTypeMapType
    signature: LiteralTypeMapType literal_type_map()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:54,1
    - Dst: find
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:59,1
    - Dst: end
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:60,1
    - Dst: insert
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:62,1
    - Dst: std::string
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:62,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - arg_name
    - arg_type
    argTypes:
    - absl::string_view
    - datalog::ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 69
    functionName: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 0
    functionsReached:
    - find
    - IsNameConstant
    - CHECK
    - end
    - std::string
    - insert
    linkageType: ''
    returnType: void
    signature: "void TypeEnvironmentGenerationVisitor::AddTyping(\n    absl::string_view
      arg_name, datalog::ArgumentType arg_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:80,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:80,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:80,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' principal'
    argTypes:
    - Principal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 0
    functionsReached:
    - Unit
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
    - name
    linkageType: ''
    returnType: Unit
    signature: Unit TypeEnvironmentGenerationVisitor::PreVisit(const Principal& principal)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsNumericOperator
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:85,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:88,1
    - Dst: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:89,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:89,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:91,1
    - Dst: GetDeclarationOrFatal
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:96,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:96,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:103,1
    - Dst: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:104,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:104,1
    - Dst: datalog::RelationDeclaration::arguments
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:104,1
    - Dst: argument_type
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:104,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' pred'
    argTypes:
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 108
    functionName: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 0
    functionsReached:
    - datalog::RelationDeclaration::arguments
    - Unit
    - args
    - name
    - IsNumericOperator
    - argument_type
    - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
    - GetDeclarationOrFatal
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: Unit
    signature: Unit TypeEnvironmentGenerationVisitor::Visit(const datalog::Predicate&
      pred)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - decl_env
    argTypes:
    - DeclarationEnvironment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::TypeEnvironmentGenerationVisitor
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TypeEnvironmentGenerationVisitor(DeclarationEnvironment decl_env)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::literal_type_map
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LiteralTypeMapType
    signature: LiteralTypeMapType literal_type_map()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:54,1
    - Dst: find
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:59,1
    - Dst: end
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:60,1
    - Dst: insert
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:62,1
    - Dst: std::string
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:62,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - arg_name
    - arg_type
    argTypes:
    - absl::string_view
    - datalog::ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 69
    functionName: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 2
    functionsReached:
    - find
    - IsNameConstant
    - CHECK
    - end
    - std::string
    - insert
    linkageType: ''
    returnType: void
    signature: "void TypeEnvironmentGenerationVisitor::AddTyping(\n    absl::string_view
      arg_name, datalog::ArgumentType arg_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:80,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:80,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:80,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' principal'
    argTypes:
    - Principal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 0
    functionsReached:
    - Unit
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
    - name
    linkageType: ''
    returnType: Unit
    signature: Unit TypeEnvironmentGenerationVisitor::PreVisit(const Principal& principal)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsNumericOperator
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:85,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:88,1
    - Dst: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:89,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:89,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:91,1
    - Dst: GetDeclarationOrFatal
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:96,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:96,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:103,1
    - Dst: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:104,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:104,1
    - Dst: datalog::RelationDeclaration::arguments
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:104,1
    - Dst: argument_type
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:104,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' pred'
    argTypes:
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 108
    functionName: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 0
    functionsReached:
    - datalog::RelationDeclaration::arguments
    - Unit
    - args
    - name
    - IsNumericOperator
    - argument_type
    - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
    - GetDeclarationOrFatal
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: Unit
    signature: Unit TypeEnvironmentGenerationVisitor::Visit(const datalog::Predicate&
      pred)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Accept
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:115,1
    - Dst: TypeEnvironmentGenerationVisitor::literal_type_map
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - decl_env
    - ' prog'
    argTypes:
    - DeclarationEnvironment
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: raksha::ir::auth_logic::TypeEnvironment::TypeEnvironment
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 0
    functionsReached:
    - Accept
    - TypeEnvironmentGenerationVisitor::literal_type_map
    linkageType: ''
    returnType: void
    signature: "void TypeEnvironment::TypeEnvironment(DeclarationEnvironment decl_env,\n
      \                                const Program& prog)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:121,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:122,1
    - Dst: end
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - argument_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: raksha::ir::auth_logic::TypeEnvironment::GetTypingOrFatal
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 0
    functionsReached:
    - find
    - CHECK
    - end
    linkageType: ''
    returnType: datalog::ArgumentType
    signature: "datalog::ArgumentType TypeEnvironment::GetTypingOrFatal(\n    absl::string_view
      argument_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - decl_env
    argTypes:
    - DeclarationEnvironment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::TypeEnvironmentGenerationVisitor
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TypeEnvironmentGenerationVisitor(DeclarationEnvironment decl_env)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::literal_type_map
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LiteralTypeMapType
    signature: LiteralTypeMapType literal_type_map()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:54,1
    - Dst: find
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:59,1
    - Dst: end
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:60,1
    - Dst: insert
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:62,1
    - Dst: std::string
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:62,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - arg_name
    - arg_type
    argTypes:
    - absl::string_view
    - datalog::ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 69
    functionName: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 4
    functionsReached:
    - find
    - IsNameConstant
    - CHECK
    - end
    - std::string
    - insert
    linkageType: ''
    returnType: void
    signature: "void TypeEnvironmentGenerationVisitor::AddTyping(\n    absl::string_view
      arg_name, datalog::ArgumentType arg_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:80,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:80,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:80,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' principal'
    argTypes:
    - Principal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 0
    functionsReached:
    - Unit
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
    - name
    linkageType: ''
    returnType: Unit
    signature: Unit TypeEnvironmentGenerationVisitor::PreVisit(const Principal& principal)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsNumericOperator
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:85,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:88,1
    - Dst: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:89,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:89,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:91,1
    - Dst: GetDeclarationOrFatal
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:96,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:96,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:103,1
    - Dst: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:104,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:104,1
    - Dst: datalog::RelationDeclaration::arguments
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:104,1
    - Dst: argument_type
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:104,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' pred'
    argTypes:
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 108
    functionName: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 0
    functionsReached:
    - datalog::RelationDeclaration::arguments
    - Unit
    - args
    - name
    - IsNumericOperator
    - argument_type
    - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
    - GetDeclarationOrFatal
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: Unit
    signature: Unit TypeEnvironmentGenerationVisitor::Visit(const datalog::Predicate&
      pred)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - decl_env
    argTypes:
    - DeclarationEnvironment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::TypeEnvironmentGenerationVisitor
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TypeEnvironmentGenerationVisitor(DeclarationEnvironment decl_env)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::literal_type_map
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LiteralTypeMapType
    signature: LiteralTypeMapType literal_type_map()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsNameConstant
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:54,1
    - Dst: find
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:59,1
    - Dst: end
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:60,1
    - Dst: insert
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:62,1
    - Dst: std::string
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:62,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - arg_name
    - arg_type
    argTypes:
    - absl::string_view
    - datalog::ArgumentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 69
    functionName: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 6
    functionsReached:
    - find
    - IsNameConstant
    - CHECK
    - end
    - std::string
    - insert
    linkageType: ''
    returnType: void
    signature: "void TypeEnvironmentGenerationVisitor::AddTyping(\n    absl::string_view
      arg_name, datalog::ArgumentType arg_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:80,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:80,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:80,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' principal'
    argTypes:
    - Principal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::PreVisit
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 0
    functionsReached:
    - Unit
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
    - name
    linkageType: ''
    returnType: Unit
    signature: Unit TypeEnvironmentGenerationVisitor::PreVisit(const Principal& principal)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsNumericOperator
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:85,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:88,1
    - Dst: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:89,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeNumberType
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:89,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:91,1
    - Dst: GetDeclarationOrFatal
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:96,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:96,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:103,1
    - Dst: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:104,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:104,1
    - Dst: datalog::RelationDeclaration::arguments
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:104,1
    - Dst: argument_type
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:104,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' pred'
    argTypes:
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 108
    functionName: raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 0
    functionsReached:
    - datalog::RelationDeclaration::arguments
    - Unit
    - args
    - name
    - IsNumericOperator
    - argument_type
    - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
    - GetDeclarationOrFatal
    - raksha::ir::datalog::ArgumentType::MakeNumberType
    linkageType: ''
    returnType: Unit
    signature: Unit TypeEnvironmentGenerationVisitor::Visit(const datalog::Predicate&
      pred)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Accept
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:115,1
    - Dst: TypeEnvironmentGenerationVisitor::literal_type_map
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - decl_env
    - ' prog'
    argTypes:
    - DeclarationEnvironment
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: raksha::ir::auth_logic::TypeEnvironment::TypeEnvironment
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 0
    functionsReached:
    - Accept
    - TypeEnvironmentGenerationVisitor::literal_type_map
    linkageType: ''
    returnType: void
    signature: "void TypeEnvironment::TypeEnvironment(DeclarationEnvironment decl_env,\n
      \                                const Program& prog)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:121,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:122,1
    - Dst: end
      Src: /src/raksha/src/ir/auth_logic/type_environment.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - argument_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: raksha::ir::auth_logic::TypeEnvironment::GetTypingOrFatal
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.cc
    functionUses: 0
    functionsReached:
    - find
    - CHECK
    - end
    linkageType: ''
    returnType: datalog::ArgumentType
    signature: "datalog::ArgumentType TypeEnvironment::GetTypingOrFatal(\n    absl::string_view
      argument_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:43,1
    - Dst: datalog::Predicate::sign
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:43,1
    - Dst: datalog::Predicate::name
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:44,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:45,1
    - Dst: datalog::Predicate::args
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - predicate
    argTypes:
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: raksha::ir::auth_logic::ToString
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc
    functionUses: 2
    functionsReached:
    - datalog::Predicate::name
    - datalog::Predicate::args
    - absl::StrJoin
    - datalog::Predicate::sign
    - absl::StrCat
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(datalog::Predicate predicate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:48,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:50,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:52,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:53,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:53,1
    - Dst: predicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:53,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:57,1
    - Dst: left_principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:57,1
    - Dst: right_principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:58,1
    - Dst: BaseFact::GetValue
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - basefact
    argTypes:
    - BaseFact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: raksha::ir::auth_logic::ToString
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc
    functionUses: 3
    functionsReached:
    - principal
    - right_principal
    - std::visit
    - absl::StrJoin
    - raksha::ir::auth_logic::ToString
    - left_principal
    - BaseFact::GetValue
    - predicate
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(BaseFact basefact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Fact::delegation_chain
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:65,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:66,1
    - Dst: Fact::base_fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:66,1
    - Dst: Fact::delegation_chain
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:69,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:71,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:71,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:73,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:73,1
    - Dst: Fact::base_fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fact
    argTypes:
    - Fact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: raksha::ir::auth_logic::ToString
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc
    functionUses: 4
    functionsReached:
    - name
    - absl::StrJoin
    - raksha::ir::auth_logic::ToString
    - Fact::delegation_chain
    - Fact::base_fact
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(Fact fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:80,1
    - Dst: raksha::ir::auth_logic::ParseProgram
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:81,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:82,1
    - Dst: Program::queries
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:82,1
    - Dst: Program::queries
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:84,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:85,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:86,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:86,1
    - Dst: fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 9
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc
    functionUses: 0
    functionsReached:
    - principal
    - EXPECT_EQ
    - fact
    - name
    - Program::queries
    - raksha::ir::auth_logic::ParseProgram
    - raksha::ir::auth_logic::ToString
    - ASSERT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(QueryAstConstructionTest, SimpleTestWithQueryProgram)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:43,1
    - Dst: datalog::Predicate::sign
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:43,1
    - Dst: datalog::Predicate::name
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:44,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:45,1
    - Dst: datalog::Predicate::args
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - predicate
    argTypes:
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: raksha::ir::auth_logic::ToString
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc
    functionUses: 5
    functionsReached:
    - datalog::Predicate::name
    - datalog::Predicate::args
    - absl::StrJoin
    - datalog::Predicate::sign
    - absl::StrCat
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(datalog::Predicate predicate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:48,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:50,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:52,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:53,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:53,1
    - Dst: predicate
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:53,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:57,1
    - Dst: left_principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:57,1
    - Dst: right_principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:58,1
    - Dst: BaseFact::GetValue
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - basefact
    argTypes:
    - BaseFact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: raksha::ir::auth_logic::ToString
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc
    functionUses: 6
    functionsReached:
    - principal
    - right_principal
    - std::visit
    - absl::StrJoin
    - raksha::ir::auth_logic::ToString
    - left_principal
    - BaseFact::GetValue
    - predicate
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(BaseFact basefact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Fact::delegation_chain
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:65,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:66,1
    - Dst: Fact::base_fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:66,1
    - Dst: Fact::delegation_chain
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:69,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:71,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:71,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:73,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:73,1
    - Dst: Fact::base_fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fact
    argTypes:
    - Fact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: raksha::ir::auth_logic::ToString
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc
    functionUses: 7
    functionsReached:
    - name
    - absl::StrJoin
    - raksha::ir::auth_logic::ToString
    - Fact::delegation_chain
    - Fact::base_fact
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(Fact fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:80,1
    - Dst: raksha::ir::auth_logic::ParseProgram
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:81,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:82,1
    - Dst: Program::queries
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:82,1
    - Dst: Program::queries
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:84,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:85,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:86,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:86,1
    - Dst: fact
      Src: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 9
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc
    functionUses: 0
    functionsReached:
    - principal
    - EXPECT_EQ
    - fact
    - name
    - Program::queries
    - raksha::ir::auth_logic::ParseProgram
    - raksha::ir::auth_logic::ToString
    - ASSERT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(QueryAstConstructionTest, SimpleTestWithQueryProgram)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:31,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:31,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:32,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - assertion
    argTypes:
    - SaysAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: raksha::ir::auth_logic::BuildSingleAssertionProgram
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc
    functionUses: 0
    functionsReached:
    - Program
    - std::move
    - std::vector::push_back
    linkageType: ''
    returnType: Program
    signature: Program BuildSingleAssertionProgram(SaysAssertion assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:37,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:37,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:38,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:38,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - speaker
    - assertion
    argTypes:
    - Principal
    - Assertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: raksha::ir::auth_logic::BuildSingleSaysAssertion
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector::push_back
    - SaysAssertion
    linkageType: ''
    returnType: SaysAssertion
    signature: SaysAssertion BuildSingleSaysAssertion(Principal speaker, Assertion
      assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::BuildSingleAssertionProgram
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:42,1
    - Dst: raksha::ir::auth_logic::BuildSingleSaysAssertion
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:42,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:43,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:44,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:44,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:44,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: raksha::ir::auth_logic::BuildPredicateTestProgram
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::BuildSingleSaysAssertion
    - Principal
    - Fact
    - Assertion
    - raksha::ir::auth_logic::BuildSingleAssertionProgram
    - BaseFact
    - raksha::ir::datalog::Predicate::Predicate
    linkageType: ''
    returnType: Program
    signature: Program BuildPredicateTestProgram()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:50,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:50,1
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:52,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:54,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:54,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:55,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:56,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:57,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:57,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - assertion
    argTypes:
    - SaysAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: raksha::ir::auth_logic::BuildRelationDeclarationProgram
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - std::vector::push_back
    - raksha::ir::datalog::RelationDeclaration::RelationDeclaration
    - std::move
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - Program
    - raksha::ir::datalog::Argument::Argument
    linkageType: ''
    returnType: Program
    signature: Program BuildRelationDeclarationProgram(SaysAssertion assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::SouffleEmitter::EmitProgram
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:69,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::Lower
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:70,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc
    functionUses: 0
    functionsReached:
    - Program
    - EXPECT_EQ
    - raksha::ir::auth_logic::LoweringToDatalogPass::Lower
    - raksha::ir::auth_logic::SouffleEmitter::EmitProgram
    linkageType: ''
    returnType: void
    signature: void TEST(EmitterTestSuite, EmptyAuthLogicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::SouffleEmitter::EmitProgram
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:84,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::Lower
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:85,1
    - Dst: raksha::ir::auth_logic::BuildPredicateTestProgram
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 88
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::auth_logic::LoweringToDatalogPass::Lower
    - raksha::ir::auth_logic::BuildPredicateTestProgram
    - raksha::ir::auth_logic::SouffleEmitter::EmitProgram
    linkageType: ''
    returnType: void
    signature: void TEST(EmitterTestSuite, SimpleTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::BuildRelationDeclarationProgram
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:91,1
    - Dst: raksha::ir::auth_logic::BuildSingleSaysAssertion
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:91,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:92,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:93,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:93,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:93,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:94,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: raksha::ir::auth_logic::BuildCanSayProgram
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::BuildSingleSaysAssertion
    - Principal
    - Fact
    - Assertion
    - BaseFact
    - raksha::ir::datalog::Predicate::Predicate
    - raksha::ir::auth_logic::BuildRelationDeclarationProgram
    linkageType: ''
    returnType: Program
    signature: Program BuildCanSayProgram()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::SouffleEmitter::EmitProgram
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:112,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::Lower
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:113,1
    - Dst: raksha::ir::auth_logic::BuildCanSayProgram
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 116
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::auth_logic::LoweringToDatalogPass::Lower
    - raksha::ir::auth_logic::BuildCanSayProgram
    - raksha::ir::auth_logic::SouffleEmitter::EmitProgram
    linkageType: ''
    returnType: void
    signature: void TEST(EmitterTestSuite, CanSayTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:120,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:121,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:121,1
    - Dst: raksha::ir::auth_logic::BuildRelationDeclarationProgram
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:123,1
    - Dst: raksha::ir::auth_logic::BuildSingleSaysAssertion
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:123,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:124,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:124,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:124,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: raksha::ir::auth_logic::BuildFloatCanSayProgram
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::BuildSingleSaysAssertion
    - Principal
    - Fact
    - Assertion
    - std::move
    - raksha::ir::datalog::Predicate::Predicate
    - raksha::ir::auth_logic::BuildRelationDeclarationProgram
    linkageType: ''
    returnType: Program
    signature: Program BuildFloatCanSayProgram()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::SouffleEmitter::EmitProgram
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:143,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::Lower
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:144,1
    - Dst: raksha::ir::auth_logic::BuildFloatCanSayProgram
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 127
    functionDepth: 4
    functionLinenumber: 127
    functionLinenumberEnd: 147
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::auth_logic::LoweringToDatalogPass::Lower
    - raksha::ir::auth_logic::BuildFloatCanSayProgram
    - raksha::ir::auth_logic::SouffleEmitter::EmitProgram
    linkageType: ''
    returnType: void
    signature: void TEST(EmitterTestSuite, FloatCanSayTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:31,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:31,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:32,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - assertion
    argTypes:
    - SaysAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: raksha::ir::auth_logic::BuildSingleAssertionProgram
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc
    functionUses: 1
    functionsReached:
    - Program
    - std::move
    - std::vector::push_back
    linkageType: ''
    returnType: Program
    signature: Program BuildSingleAssertionProgram(SaysAssertion assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:37,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:37,1
    - Dst: SaysAssertion
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:38,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:38,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - speaker
    - assertion
    argTypes:
    - Principal
    - Assertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: raksha::ir::auth_logic::BuildSingleSaysAssertion
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc
    functionUses: 3
    functionsReached:
    - std::move
    - std::vector::push_back
    - SaysAssertion
    linkageType: ''
    returnType: SaysAssertion
    signature: SaysAssertion BuildSingleSaysAssertion(Principal speaker, Assertion
      assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::BuildSingleAssertionProgram
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:42,1
    - Dst: raksha::ir::auth_logic::BuildSingleSaysAssertion
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:42,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:43,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:44,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:44,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:44,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: raksha::ir::auth_logic::BuildPredicateTestProgram
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc
    functionUses: 1
    functionsReached:
    - raksha::ir::auth_logic::BuildSingleSaysAssertion
    - Principal
    - Fact
    - Assertion
    - raksha::ir::auth_logic::BuildSingleAssertionProgram
    - BaseFact
    - raksha::ir::datalog::Predicate::Predicate
    linkageType: ''
    returnType: Program
    signature: Program BuildPredicateTestProgram()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:50,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:50,1
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:52,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:54,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:54,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:55,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:56,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:57,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:57,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - assertion
    argTypes:
    - SaysAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: raksha::ir::auth_logic::BuildRelationDeclarationProgram
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc
    functionUses: 2
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - std::vector::push_back
    - raksha::ir::datalog::RelationDeclaration::RelationDeclaration
    - std::move
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - Program
    - raksha::ir::datalog::Argument::Argument
    linkageType: ''
    returnType: Program
    signature: Program BuildRelationDeclarationProgram(SaysAssertion assertion)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::SouffleEmitter::EmitProgram
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:69,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::Lower
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:70,1
    - Dst: Program
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc
    functionUses: 0
    functionsReached:
    - Program
    - EXPECT_EQ
    - raksha::ir::auth_logic::LoweringToDatalogPass::Lower
    - raksha::ir::auth_logic::SouffleEmitter::EmitProgram
    linkageType: ''
    returnType: void
    signature: void TEST(EmitterTestSuite, EmptyAuthLogicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::SouffleEmitter::EmitProgram
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:84,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::Lower
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:85,1
    - Dst: raksha::ir::auth_logic::BuildPredicateTestProgram
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 88
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::auth_logic::LoweringToDatalogPass::Lower
    - raksha::ir::auth_logic::BuildPredicateTestProgram
    - raksha::ir::auth_logic::SouffleEmitter::EmitProgram
    linkageType: ''
    returnType: void
    signature: void TEST(EmitterTestSuite, SimpleTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::BuildRelationDeclarationProgram
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:91,1
    - Dst: raksha::ir::auth_logic::BuildSingleSaysAssertion
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:91,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:92,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:93,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:93,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:93,1
    - Dst: BaseFact
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:94,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: raksha::ir::auth_logic::BuildCanSayProgram
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc
    functionUses: 1
    functionsReached:
    - raksha::ir::auth_logic::BuildSingleSaysAssertion
    - Principal
    - Fact
    - Assertion
    - BaseFact
    - raksha::ir::datalog::Predicate::Predicate
    - raksha::ir::auth_logic::BuildRelationDeclarationProgram
    linkageType: ''
    returnType: Program
    signature: Program BuildCanSayProgram()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::SouffleEmitter::EmitProgram
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:112,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::Lower
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:113,1
    - Dst: raksha::ir::auth_logic::BuildCanSayProgram
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 116
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::auth_logic::LoweringToDatalogPass::Lower
    - raksha::ir::auth_logic::BuildCanSayProgram
    - raksha::ir::auth_logic::SouffleEmitter::EmitProgram
    linkageType: ''
    returnType: void
    signature: void TEST(EmitterTestSuite, CanSayTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:120,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:121,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:121,1
    - Dst: raksha::ir::auth_logic::BuildRelationDeclarationProgram
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:123,1
    - Dst: raksha::ir::auth_logic::BuildSingleSaysAssertion
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:123,1
    - Dst: Principal
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:124,1
    - Dst: Assertion
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:124,1
    - Dst: Fact
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:124,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: raksha::ir::auth_logic::BuildFloatCanSayProgram
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc
    functionUses: 1
    functionsReached:
    - raksha::ir::auth_logic::BuildSingleSaysAssertion
    - Principal
    - Fact
    - Assertion
    - std::move
    - raksha::ir::datalog::Predicate::Predicate
    - raksha::ir::auth_logic::BuildRelationDeclarationProgram
    linkageType: ''
    returnType: Program
    signature: Program BuildFloatCanSayProgram()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::SouffleEmitter::EmitProgram
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:143,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::Lower
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:144,1
    - Dst: raksha::ir::auth_logic::BuildFloatCanSayProgram
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 127
    functionDepth: 4
    functionLinenumber: 127
    functionLinenumberEnd: 147
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::ir::auth_logic::LoweringToDatalogPass::Lower
    - raksha::ir::auth_logic::BuildFloatCanSayProgram
    - raksha::ir::auth_logic::SouffleEmitter::EmitProgram
    linkageType: ''
    returnType: void
    signature: void TEST(EmitterTestSuite, FloatCanSayTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:27,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - nodes
    argTypes:
    - std::vector<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: raksha::ir::auth_logic::ToStrings
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - utils::MapIter<std::string>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> ToStrings(const std::vector<T> nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:27,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - nodes
    argTypes:
    - std::vector<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: raksha::ir::auth_logic::ToStrings
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - utils::MapIter<std::string>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> ToStrings(const std::vector<T> nodes)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:35,1
    - Dst: std::find
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:38,1
    - Dst: begin
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:38,1
    - Dst: end
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:38,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:39,1
    - Dst: end
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:39,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:40,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:40,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:41,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:42,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:44,1
    - Dst: sign
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:45,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:46,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:46,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:46,1
    - Dst: kind
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:50,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:52,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:52,1
    - Dst: std::string
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:54,1
    - Dst: std::string
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:56,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:58,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:62,1
    - Dst: argument_name
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:62,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:63,1
    - Dst: argument_type
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:63,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:66,1
    - Dst: is_attribute
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:68,1
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:69,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:70,1
    - Dst: raksha::ir::auth_logic::ToStrings
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:70,1
    - Dst: arguments
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:70,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:73,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:75,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:75,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:75,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:76,1
    - Dst: predicate
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:76,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:79,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:79,1
    - Dst: left_principal
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:79,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:81,1
    - Dst: right_principal
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:81,1
    - Dst: std::visit
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:84,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:87,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:89,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:90,1
    - Dst: GetValue
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:91,1
    - Dst: delegation_chain
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:95,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:97,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:97,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:99,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:99,1
    - Dst: base_fact
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:99,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:102,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:103,1
    - Dst: lhs
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:103,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:104,1
    - Dst: raksha::ir::auth_logic::ToStrings
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:104,1
    - Dst: rhs
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:104,1
    - Dst: std::visit
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:108,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:110,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:110,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:112,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:112,1
    - Dst: GetValue
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:114,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:117,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:118,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:118,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:119,1
    - Dst: raksha::ir::auth_logic::ToStrings
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:119,1
    - Dst: assertions
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:119,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:123,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:123,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:124,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:124,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:125,1
    - Dst: fact
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:125,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:128,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:129,1
    - Dst: raksha::ir::auth_logic::ToStrings
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:129,1
    - Dst: relation_declarations
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:129,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:131,1
    - Dst: raksha::ir::auth_logic::ToStrings
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:131,1
    - Dst: says_assertions
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:131,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:132,1
    - Dst: raksha::ir::auth_logic::ToStrings
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:132,1
    - Dst: queries
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 1
    argNames:
    - Node
    argTypes:
    - AstNodeVariantType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 136
    functionName: raksha::ir::auth_logic::ToString
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string.cc
    functionUses: 11
    functionsReached:
    - args
    - fact
    - name
    - end
    - sign
    - lhs
    - right_principal
    - raksha::ir::auth_logic::ToStrings
    - rhs
    - begin
    - kind
    - delegation_chain
    - std::visit
    - argument_type
    - std::find
    - raksha::ir::auth_logic::ToString
    - absl::StrCat
    - relation_declarations
    - principal
    - GetValue
    - queries
    - assertions
    - absl::StrJoin
    - arguments
    - is_attribute
    - CHECK
    - argument_name
    - left_principal
    - base_fact
    - predicate
    - says_assertions
    - std::string
    - relation_name
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(AstNodeVariantType Node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:27,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - nodes
    argTypes:
    - std::vector<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: raksha::ir::auth_logic::ToStrings
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string.cc
    functionUses: 1
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - utils::MapIter<std::string>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> ToStrings(const std::vector<T> nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:27,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - nodes
    argTypes:
    - std::vector<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: raksha::ir::auth_logic::ToStrings
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string.cc
    functionUses: 1
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - utils::MapIter<std::string>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> ToStrings(const std::vector<T> nodes)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:35,1
    - Dst: std::find
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:38,1
    - Dst: begin
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:38,1
    - Dst: end
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:38,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:39,1
    - Dst: end
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:39,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:40,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:40,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:41,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:42,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:44,1
    - Dst: sign
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:45,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:46,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:46,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:46,1
    - Dst: kind
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:50,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:52,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:52,1
    - Dst: std::string
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:54,1
    - Dst: std::string
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:56,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:58,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:62,1
    - Dst: argument_name
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:62,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:63,1
    - Dst: argument_type
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:63,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:66,1
    - Dst: is_attribute
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:68,1
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:69,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:70,1
    - Dst: raksha::ir::auth_logic::ToStrings
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:70,1
    - Dst: arguments
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:70,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:73,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:75,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:75,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:75,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:76,1
    - Dst: predicate
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:76,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:79,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:79,1
    - Dst: left_principal
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:79,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:81,1
    - Dst: right_principal
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:81,1
    - Dst: std::visit
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:84,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:87,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:89,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:90,1
    - Dst: GetValue
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:91,1
    - Dst: delegation_chain
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:95,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:97,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:97,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:99,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:99,1
    - Dst: base_fact
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:99,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:102,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:103,1
    - Dst: lhs
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:103,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:104,1
    - Dst: raksha::ir::auth_logic::ToStrings
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:104,1
    - Dst: rhs
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:104,1
    - Dst: std::visit
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:108,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:110,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:110,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:112,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:112,1
    - Dst: GetValue
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:114,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:117,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:118,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:118,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:119,1
    - Dst: raksha::ir::auth_logic::ToStrings
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:119,1
    - Dst: assertions
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:119,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:123,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:123,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:124,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:124,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:125,1
    - Dst: fact
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:125,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:128,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:129,1
    - Dst: raksha::ir::auth_logic::ToStrings
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:129,1
    - Dst: relation_declarations
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:129,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:131,1
    - Dst: raksha::ir::auth_logic::ToStrings
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:131,1
    - Dst: says_assertions
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:131,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:132,1
    - Dst: raksha::ir::auth_logic::ToStrings
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:132,1
    - Dst: queries
      Src: /src/raksha/src/ir/auth_logic/ast_string.cc:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 1
    argNames:
    - Node
    argTypes:
    - AstNodeVariantType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 136
    functionName: raksha::ir::auth_logic::ToString
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string.cc
    functionUses: 14
    functionsReached:
    - args
    - fact
    - name
    - end
    - sign
    - lhs
    - right_principal
    - raksha::ir::auth_logic::ToStrings
    - rhs
    - begin
    - kind
    - delegation_chain
    - std::visit
    - argument_type
    - std::find
    - raksha::ir::auth_logic::ToString
    - absl::StrCat
    - relation_declarations
    - principal
    - GetValue
    - queries
    - assertions
    - absl::StrJoin
    - arguments
    - is_attribute
    - CHECK
    - argument_name
    - left_principal
    - base_fact
    - predicate
    - says_assertions
    - std::string
    - relation_name
    linkageType: ''
    returnType: std::string
    signature: std::string ToString(AstNodeVariantType Node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::LoweringToDatalogPass
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' auth_logic_program'
    argTypes:
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::Lower
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.h
    functionUses: 9
    functionsReached:
    - raksha::ir::auth_logic::LoweringToDatalogPass::LoweringToDatalogPass
    linkageType: ''
    returnType: datalog::Program
    signature: datalog::Program Lower(const Program& auth_logic_program)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::LoweringToDatalogPass
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LoweringToDatalogPass()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.h:142,1
    - Dst: std::numeric_limits<uint64_t>::max
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.h:142,1
    - Dst: std::to_string
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::FreshVar
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.h
    functionUses: 0
    functionsReached:
    - std::numeric_limits<uint64_t>::max
    - CHECK
    - std::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string FreshVar()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::LoweringToDatalogPass
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' auth_logic_program'
    argTypes:
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::Lower
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.h
    functionUses: 9
    functionsReached:
    - raksha::ir::auth_logic::LoweringToDatalogPass::LoweringToDatalogPass
    linkageType: ''
    returnType: datalog::Program
    signature: datalog::Program Lower(const Program& auth_logic_program)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::LoweringToDatalogPass
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LoweringToDatalogPass()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.h:142,1
    - Dst: std::numeric_limits<uint64_t>::max
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.h:142,1
    - Dst: std::to_string
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::FreshVar
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.h
    functionUses: 0
    functionsReached:
    - std::numeric_limits<uint64_t>::max
    - CHECK
    - std::to_string
    linkageType: ''
    returnType: std::string
    signature: std::string FreshVar()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:38,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:38,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:38,1
    - Dst: absl::c_copy
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:39,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:39,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:39,1
    - Dst: sign
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:40,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:41,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - modifier
    - new_args
    - ' predicate'
    argTypes:
    - absl::string_view
    - std::vector<std::string>
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: raksha::ir::auth_logic::PushOntoPredicate
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - args
    - name
    - absl::c_copy
    - std::back_inserter
    - std::move
    - raksha::ir::datalog::Predicate::Predicate
    - absl::StrCat
    - sign
    linkageType: ''
    returnType: datalog::Predicate
    signature: "datalog::Predicate PushOntoPredicate(absl::string_view modifier,\n
      \                                    std::vector<std::string> new_args,\n                                     const
      datalog::Predicate& predicate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::PushOntoPredicate
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:53,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - modifier
    - ' principal'
    - ' predicate'
    argTypes:
    - absl::string_view
    - Principal
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: raksha::ir::auth_logic::PushPrincipal
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - name
    - raksha::ir::auth_logic::PushOntoPredicate
    linkageType: ''
    returnType: datalog::Predicate
    signature: "datalog::Predicate PushPrincipal(absl::string_view modifier,\n                                 const
      Principal& principal,\n                                 const datalog::Predicate&
      predicate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:59,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:59,1
    - Dst: predicate
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' attribute'
    argTypes:
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: raksha::ir::auth_logic::AttributeToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::PushPrincipal
    - predicate
    - principal
    linkageType: ''
    returnType: datalog::Predicate
    signature: datalog::Predicate AttributeToDLIR(const Attribute& attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:63,1
    - Dst: left_principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:65,1
    - Dst: right_principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' can_act_as'
    argTypes:
    - CanActAs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: raksha::ir::auth_logic::CanActAsToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - right_principal
    - raksha::ir::datalog::Predicate::Predicate
    - left_principal
    linkageType: ''
    returnType: datalog::Predicate
    signature: datalog::Predicate CanActAsToDLIR(const CanActAs& can_act_as)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:38,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:38,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:38,1
    - Dst: absl::c_copy
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:39,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:39,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:39,1
    - Dst: sign
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:40,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:41,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - modifier
    - new_args
    - ' predicate'
    argTypes:
    - absl::string_view
    - std::vector<std::string>
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: raksha::ir::auth_logic::PushOntoPredicate
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 1
    functionsReached:
    - args
    - name
    - absl::c_copy
    - std::back_inserter
    - std::move
    - raksha::ir::datalog::Predicate::Predicate
    - absl::StrCat
    - sign
    linkageType: ''
    returnType: datalog::Predicate
    signature: "datalog::Predicate PushOntoPredicate(absl::string_view modifier,\n
      \                                    std::vector<std::string> new_args,\n                                     const
      datalog::Predicate& predicate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::PushOntoPredicate
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:53,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - modifier
    - ' principal'
    - ' predicate'
    argTypes:
    - absl::string_view
    - Principal
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: raksha::ir::auth_logic::PushPrincipal
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 1
    functionsReached:
    - name
    - raksha::ir::auth_logic::PushOntoPredicate
    linkageType: ''
    returnType: datalog::Predicate
    signature: "datalog::Predicate PushPrincipal(absl::string_view modifier,\n                                 const
      Principal& principal,\n                                 const datalog::Predicate&
      predicate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:59,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:59,1
    - Dst: predicate
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' attribute'
    argTypes:
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: raksha::ir::auth_logic::AttributeToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::PushPrincipal
    - predicate
    - principal
    linkageType: ''
    returnType: datalog::Predicate
    signature: datalog::Predicate AttributeToDLIR(const Attribute& attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:63,1
    - Dst: left_principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:65,1
    - Dst: right_principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' can_act_as'
    argTypes:
    - CanActAs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: raksha::ir::auth_logic::CanActAsToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - right_principal
    - raksha::ir::datalog::Predicate::Predicate
    - left_principal
    linkageType: ''
    returnType: datalog::Predicate
    signature: datalog::Predicate CanActAsToDLIR(const CanActAs& can_act_as)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:72,1
    - Dst: std::max
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' predicate_name'
    - depth
    argTypes:
    - std::string
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::UpdateCanSayDepth
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - std::max
    - insert
    linkageType: ''
    returnType: void
    signature: "void LoweringToDatalogPass::UpdateCanSayDepth(const std::string& predicate_name,\n
      \                                             uint64_t depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AttributeToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:91,1
    - Dst: Attribute
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:91,1
    - Dst: predicate
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:91,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:92,1
    - Dst: CanActAsToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:96,1
    - Dst: CanActAs
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:96,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:96,1
    - Dst: AttributeToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:99,1
    - Dst: raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:104,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:105,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' speaker'
    - ' attribute'
    argTypes:
    - Principal
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 107
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::SpokenAttributeToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - principal
    - raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
    - CanActAs
    - Attribute
    - CanActAsToDLIR
    - PushPrincipal
    - AttributeToDLIR
    - predicate
    linkageType: ''
    returnType: datalog::Rule
    signature: "datalog::Rule LoweringToDatalogPass::SpokenAttributeToDLIR(\n    const
      Principal& speaker, const Attribute& attribute)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CanActAsToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:121,1
    - Dst: CanActAs
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:121,1
    - Dst: right_principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:121,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:123,1
    - Dst: CanActAsToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:127,1
    - Dst: CanActAs
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:127,1
    - Dst: left_principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:127,1
    - Dst: CanActAsToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:130,1
    - Dst: raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:135,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:136,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' speaker'
    - ' can_act_as'
    argTypes:
    - Principal
    - CanActAs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 138
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::SpokenCanActAsToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - right_principal
    - CanActAs
    - raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
    - CanActAsToDLIR
    - PushPrincipal
    - left_principal
    linkageType: ''
    returnType: datalog::Rule
    signature: "datalog::Rule LoweringToDatalogPass::SpokenCanActAsToDLIR(\n    const
      Principal& speaker, const CanActAs& can_act_as)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:143,1
    - Dst: std::vector<datalog::Rule>
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' speaker'
    - ' predicate'
    argTypes:
    - Principal
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIRInner
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - std::vector<datalog::Rule>
    - std::make_pair
    linkageType: ''
    returnType: std::pair<datalog::Predicate, std::vector<datalog::Rule>>
    signature: "std::pair<datalog::Predicate, std::vector<datalog::Rule>> LoweringToDatalogPass::BaseFactToDLIRInner(\n
      \   const Principal& speaker, const datalog::Predicate& predicate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:149,1
    - Dst: AttributeToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:150,1
    - Dst: std::vector<datalog::Rule>
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:151,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::SpokenAttributeToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' speaker'
    - ' attribute'
    argTypes:
    - Principal
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIRInner
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - std::vector<datalog::Rule>
    - AttributeToDLIR
    - std::make_pair
    - raksha::ir::auth_logic::LoweringToDatalogPass::SpokenAttributeToDLIR
    linkageType: ''
    returnType: std::pair<datalog::Predicate, std::vector<datalog::Rule>>
    signature: "std::pair<datalog::Predicate, std::vector<datalog::Rule>> LoweringToDatalogPass::BaseFactToDLIRInner(const
      Principal& speaker,\n                                           const Attribute&
      attribute)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:157,1
    - Dst: CanActAsToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:158,1
    - Dst: std::vector<datalog::Rule>
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:159,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::SpokenCanActAsToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' speaker'
    - ' canActAs'
    argTypes:
    - Principal
    - CanActAs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIRInner
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - std::vector<datalog::Rule>
    - CanActAsToDLIR
    - std::make_pair
    - raksha::ir::auth_logic::LoweringToDatalogPass::SpokenCanActAsToDLIR
    linkageType: ''
    returnType: std::pair<datalog::Predicate, std::vector<datalog::Rule>>
    signature: "std::pair<datalog::Predicate, std::vector<datalog::Rule>> LoweringToDatalogPass::BaseFactToDLIRInner(const
      Principal& speaker,\n                                           const CanActAs&
      canActAs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:165,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIRInner
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:167,1
    - Dst: GetValue
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' speaker'
    - ' base_fact'
    argTypes:
    - Principal
    - BaseFact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIRInner
    - std::visit
    - GetValue
    linkageType: ''
    returnType: std::pair<datalog::Predicate, std::vector<datalog::Rule>>
    signature: "std::pair<datalog::Predicate, std::vector<datalog::Rule>> LoweringToDatalogPass::BaseFactToDLIR(const
      Principal& speaker,\n                                      const BaseFact& base_fact)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:174,1
    - Dst: base_fact
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:174,1
    - Dst: delegation_chain
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:176,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:187,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:189,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:190,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:192,1
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:195,1
    - Dst: raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:195,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:204,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::UpdateCanSayDepth
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:207,1
    - Dst: datalog::Predicate::name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:207,1
    - Dst: std::distance
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:208,1
    - Dst: delegation_chain
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:208,1
    - Dst: delegation_chain
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:209,1
    - Dst: std::make_pair
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' speaker'
    - ' fact'
    argTypes:
    - Principal
    - Fact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 211
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::FactToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - datalog::Predicate::name
    - std::make_pair
    - raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
    - raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIR
    - std::distance
    - delegation_chain
    - PushPrincipal
    - base_fact
    - raksha::ir::auth_logic::LoweringToDatalogPass::UpdateCanSayDepth
    - push_back
    linkageType: ''
    returnType: std::pair<datalog::Predicate, std::vector<datalog::Rule>>
    signature: std::pair<datalog::Predicate, std::vector<datalog::Rule>> LoweringToDatalogPass::FactToDLIR(const
      Principal& speaker, const Fact& fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::FactToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:215,1
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:216,1
    - Dst: raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:217,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' speaker'
    - ' fact'
    argTypes:
    - Principal
    - Fact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 219
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::GenerateDLIRAssertions
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
    - push_back
    - PushPrincipal
    - raksha::ir::auth_logic::LoweringToDatalogPass::FactToDLIR
    linkageType: ''
    returnType: std::vector<datalog::Rule>
    signature: "std::vector<datalog::Rule> LoweringToDatalogPass::GenerateDLIRAssertions(\n
      \   const Principal& speaker, const Fact& fact)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<datalog::Predicate>
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:224,1
    - Dst: rhs
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:225,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:226,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:227,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::FactToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:229,1
    - Dst: lhs
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:229,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:230,1
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:231,1
    - Dst: raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' speaker'
    - ' conditional_assertion'
    argTypes:
    - Principal
    - ConditionalAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 233
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::GenerateDLIRAssertions
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - utils::MapIter<datalog::Predicate>
    - lhs
    - raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
    - raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIR
    - PushPrincipal
    - rhs
    - raksha::ir::auth_logic::LoweringToDatalogPass::FactToDLIR
    - push_back
    linkageType: ''
    returnType: std::vector<datalog::Rule>
    signature: "std::vector<datalog::Rule> LoweringToDatalogPass::GenerateDLIRAssertions(\n
      \   const Principal& speaker,\n    const ConditionalAssertion& conditional_assertion)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:237,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::GenerateDLIRAssertions
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:243,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::GenerateDLIRAssertions
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:246,1
    - Dst: GetValue
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' speaker'
    - ' assertion'
    argTypes:
    - Principal
    - Assertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 235
    functionDepth: 4
    functionLinenumber: 235
    functionLinenumberEnd: 249
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::SingleSaysAssertionToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - GetValue
    - raksha::ir::auth_logic::LoweringToDatalogPass::GenerateDLIRAssertions
    - std::visit
    linkageType: ''
    returnType: std::vector<datalog::Rule>
    signature: "std::vector<datalog::Rule> LoweringToDatalogPass::SingleSaysAssertionToDLIR(\n
      \   const Principal& speaker, const Assertion& assertion)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assertions
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:254,1
    - Dst: absl::c_move
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:255,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::SingleSaysAssertionToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:256,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:256,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' says_assertion'
    argTypes:
    - SaysAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 251
    functionDepth: 5
    functionLinenumber: 251
    functionLinenumberEnd: 260
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::SaysAssertionToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - principal
    - assertions
    - raksha::ir::auth_logic::LoweringToDatalogPass::SingleSaysAssertionToDLIR
    - absl::c_move
    - std::back_inserter
    linkageType: ''
    returnType: std::vector<datalog::Rule>
    signature: "std::vector<datalog::Rule> LoweringToDatalogPass::SaysAssertionToDLIR(\n
      \   const SaysAssertion& says_assertion)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::c_move
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:266,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::SaysAssertionToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:266,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' says_assertions'
    argTypes:
    - std::vector<SaysAssertion>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 262
    functionDepth: 6
    functionLinenumber: 262
    functionLinenumberEnd: 269
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::SaysAssertionsToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - std::back_inserter
    - absl::c_move
    - raksha::ir::auth_logic::LoweringToDatalogPass::SaysAssertionToDLIR
    linkageType: ''
    returnType: std::vector<datalog::Rule>
    signature: "std::vector<datalog::Rule> LoweringToDatalogPass::SaysAssertionsToDLIR(\n
      \   const std::vector<SaysAssertion>& says_assertions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<datalog::Rule>
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:273,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::FactToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:274,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:274,1
    - Dst: fact
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:274,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:275,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:275,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:276,1
    - Dst: raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' queries'
    argTypes:
    - std::vector<Query>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 271
    functionDepth: 3
    functionLinenumber: 271
    functionLinenumberEnd: 280
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::QueriesToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - principal
    - fact
    - raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
    - name
    - utils::MapIter<datalog::Rule>
    - PushPrincipal
    - raksha::ir::auth_logic::LoweringToDatalogPass::FactToDLIR
    linkageType: ''
    returnType: std::vector<datalog::Rule>
    signature: "std::vector<datalog::Rule> LoweringToDatalogPass::QueriesToDLIR(\n
      \   const std::vector<Query>& queries)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<datalog::RelationDeclaration>
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:290,1
    - Dst: is_attribute
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:293,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:295,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:296,1
    - Dst: absl::c_copy
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:297,1
    - Dst: arguments
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:297,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:298,1
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:300,1
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' relation_declarations'
    argTypes:
    - std::vector<datalog::RelationDeclaration>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 303
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::TransformAttributeDeclarations
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - utils::MapIter<datalog::RelationDeclaration>
    - absl::c_copy
    - arguments
    - is_attribute
    - std::back_inserter
    - raksha::ir::datalog::RelationDeclaration::RelationDeclaration
    - raksha::ir::datalog::Argument::Argument
    - relation_name
    linkageType: ''
    returnType: std::vector<datalog::RelationDeclaration>
    signature: "std::vector<datalog::RelationDeclaration> LoweringToDatalogPass::TransformAttributeDeclarations(\n
      \   const std::vector<datalog::RelationDeclaration>& relation_declarations)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:325,1
    - Dst: end
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:326,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:330,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:330,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:331,1
    - Dst: absl::c_copy
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:339,1
    - Dst: arguments
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:339,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:340,1
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:342,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:343,1
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:344,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:346,1
    - Dst: absl::c_copy
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:357,1
    - Dst: std::vector::at
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:357,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:358,1
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:360,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:361,1
    - Dst: std::vector::at
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:362,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:364,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - "\n        type_environment"
    argTypes:
    - absl::flat_hash_map<std::string_view, datalog::RelationDeclaration>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 368
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::GetCanSayDeclarations
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - find
    - std::vector::push_back
    - absl::c_copy
    - arguments
    - std::back_inserter
    - raksha::ir::datalog::RelationDeclaration::RelationDeclaration
    - raksha::ir::datalog::Argument::Argument
    - end
    - absl::StrCat
    - std::vector::at
    - relation_name
    linkageType: ''
    returnType: std::vector<datalog::RelationDeclaration>
    signature: "std::vector<datalog::RelationDeclaration> LoweringToDatalogPass::GetCanSayDeclarations(\n
      \   const absl::flat_hash_map<std::string_view, datalog::RelationDeclaration>&\n
      \       type_environment)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<datalog::RelationDeclaration>
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:377,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:380,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:381,1
    - Dst: absl::c_copy
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:382,1
    - Dst: arguments
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:382,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:382,1
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:383,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:384,1
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' transformed_declarations'
    argTypes:
    - std::vector<datalog::RelationDeclaration>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 387
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::GetSaysExtendRelationDeclarations
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - utils::MapIter<datalog::RelationDeclaration>
    - absl::c_copy
    - arguments
    - std::back_inserter
    - raksha::ir::datalog::RelationDeclaration::RelationDeclaration
    - raksha::ir::datalog::Argument::Argument
    - absl::StrCat
    - relation_name
    linkageType: ''
    returnType: std::vector<datalog::RelationDeclaration>
    signature: "std::vector<datalog::RelationDeclaration> LoweringToDatalogPass::GetSaysExtendRelationDeclarations(\n
      \   const std::vector<datalog::RelationDeclaration>& transformed_declarations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::TransformAttributeDeclarations
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:398,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:406,1
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:406,1
    - Dst: absl::c_move
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:408,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::GetCanSayDeclarations
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:408,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:409,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:413,1
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:413,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:415,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:415,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:416,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:416,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::GetSaysExtendRelationDeclarations
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' relation_declarations'
    argTypes:
    - std::vector<datalog::RelationDeclaration>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 389
    functionDepth: 3
    functionLinenumber: 389
    functionLinenumberEnd: 424
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::RelationDeclarationToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - raksha::ir::auth_logic::LoweringToDatalogPass::GetCanSayDeclarations
    - std::vector::push_back
    - absl::flat_hash_map::insert
    - raksha::ir::auth_logic::LoweringToDatalogPass::GetSaysExtendRelationDeclarations
    - absl::c_move
    - std::back_inserter
    - raksha::ir::datalog::RelationDeclaration::RelationDeclaration
    - raksha::ir::datalog::Argument::Argument
    - raksha::ir::auth_logic::LoweringToDatalogPass::TransformAttributeDeclarations
    - relation_name
    linkageType: ''
    returnType: std::vector<datalog::RelationDeclaration>
    signature: "std::vector<datalog::RelationDeclaration> LoweringToDatalogPass::RelationDeclarationToDLIR(\n
      \   const std::vector<datalog::RelationDeclaration>& relation_declarations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<datalog::RelationDeclaration>
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:432,1
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:434,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:435,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:436,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:438,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:442,1
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:442,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:444,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' queries'
    argTypes:
    - std::vector<Query>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 447
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::QueryRelationDeclarationToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - name
    - utils::MapIter<datalog::RelationDeclaration>
    - raksha::ir::datalog::RelationDeclaration::RelationDeclaration
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - raksha::ir::datalog::Argument::Argument
    linkageType: ''
    returnType: std::vector<datalog::RelationDeclaration>
    signature: "std::vector<datalog::RelationDeclaration> LoweringToDatalogPass::QueryRelationDeclarationToDLIR(\n
      \   const std::vector<Query>& queries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::SaysAssertionsToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:450,1
    - Dst: says_assertions
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:450,1
    - Dst: absl::c_move
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:454,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::QueriesToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:454,1
    - Dst: queries
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:454,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:455,1
    - Dst: auto::push_back
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:456,1
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:458,1
    - Dst: queries
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:459,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:459,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::RelationDeclarationToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:467,1
    - Dst: relation_declarations
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:467,1
    - Dst: absl::c_move
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:468,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::QueryRelationDeclarationToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:468,1
    - Dst: queries
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:468,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:469,1
    - Dst: raksha::ir::datalog::Program::Program
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' program'
    argTypes:
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 449
    functionDepth: 7
    functionLinenumber: 449
    functionLinenumberEnd: 472
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::ProgToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::LoweringToDatalogPass::RelationDeclarationToDLIR
    - raksha::ir::auth_logic::LoweringToDatalogPass::SaysAssertionsToDLIR
    - auto::push_back
    - utils::MapIter<std::string>
    - raksha::ir::auth_logic::LoweringToDatalogPass::QueryRelationDeclarationToDLIR
    - queries
    - raksha::ir::auth_logic::LoweringToDatalogPass::QueriesToDLIR
    - absl::c_move
    - name
    - std::back_inserter
    - raksha::ir::datalog::Program::Program
    - relation_declarations
    - says_assertions
    linkageType: ''
    returnType: datalog::Program
    signature: datalog::Program LoweringToDatalogPass::ProgToDLIR(const Program& program)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:38,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:38,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:38,1
    - Dst: absl::c_copy
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:39,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:39,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:39,1
    - Dst: sign
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:40,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:41,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - modifier
    - new_args
    - ' predicate'
    argTypes:
    - absl::string_view
    - std::vector<std::string>
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: raksha::ir::auth_logic::PushOntoPredicate
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 2
    functionsReached:
    - args
    - name
    - absl::c_copy
    - std::back_inserter
    - std::move
    - raksha::ir::datalog::Predicate::Predicate
    - absl::StrCat
    - sign
    linkageType: ''
    returnType: datalog::Predicate
    signature: "datalog::Predicate PushOntoPredicate(absl::string_view modifier,\n
      \                                    std::vector<std::string> new_args,\n                                     const
      datalog::Predicate& predicate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::PushOntoPredicate
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:53,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - modifier
    - ' principal'
    - ' predicate'
    argTypes:
    - absl::string_view
    - Principal
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: raksha::ir::auth_logic::PushPrincipal
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 2
    functionsReached:
    - name
    - raksha::ir::auth_logic::PushOntoPredicate
    linkageType: ''
    returnType: datalog::Predicate
    signature: "datalog::Predicate PushPrincipal(absl::string_view modifier,\n                                 const
      Principal& principal,\n                                 const datalog::Predicate&
      predicate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:59,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:59,1
    - Dst: predicate
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' attribute'
    argTypes:
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: raksha::ir::auth_logic::AttributeToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::PushPrincipal
    - predicate
    - principal
    linkageType: ''
    returnType: datalog::Predicate
    signature: datalog::Predicate AttributeToDLIR(const Attribute& attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:63,1
    - Dst: left_principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:65,1
    - Dst: right_principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' can_act_as'
    argTypes:
    - CanActAs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: raksha::ir::auth_logic::CanActAsToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - right_principal
    - raksha::ir::datalog::Predicate::Predicate
    - left_principal
    linkageType: ''
    returnType: datalog::Predicate
    signature: datalog::Predicate CanActAsToDLIR(const CanActAs& can_act_as)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:38,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:38,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:38,1
    - Dst: absl::c_copy
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:39,1
    - Dst: args
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:39,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:39,1
    - Dst: sign
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:40,1
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:41,1
    - Dst: std::move
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - modifier
    - new_args
    - ' predicate'
    argTypes:
    - absl::string_view
    - std::vector<std::string>
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: raksha::ir::auth_logic::PushOntoPredicate
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 3
    functionsReached:
    - args
    - name
    - absl::c_copy
    - std::back_inserter
    - std::move
    - raksha::ir::datalog::Predicate::Predicate
    - absl::StrCat
    - sign
    linkageType: ''
    returnType: datalog::Predicate
    signature: "datalog::Predicate PushOntoPredicate(absl::string_view modifier,\n
      \                                    std::vector<std::string> new_args,\n                                     const
      datalog::Predicate& predicate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::PushOntoPredicate
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:53,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - modifier
    - ' principal'
    - ' predicate'
    argTypes:
    - absl::string_view
    - Principal
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: raksha::ir::auth_logic::PushPrincipal
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 3
    functionsReached:
    - name
    - raksha::ir::auth_logic::PushOntoPredicate
    linkageType: ''
    returnType: datalog::Predicate
    signature: "datalog::Predicate PushPrincipal(absl::string_view modifier,\n                                 const
      Principal& principal,\n                                 const datalog::Predicate&
      predicate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:59,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:59,1
    - Dst: predicate
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' attribute'
    argTypes:
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: raksha::ir::auth_logic::AttributeToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::PushPrincipal
    - predicate
    - principal
    linkageType: ''
    returnType: datalog::Predicate
    signature: datalog::Predicate AttributeToDLIR(const Attribute& attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::Predicate::Predicate
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:63,1
    - Dst: left_principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:65,1
    - Dst: right_principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' can_act_as'
    argTypes:
    - CanActAs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: raksha::ir::auth_logic::CanActAsToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - right_principal
    - raksha::ir::datalog::Predicate::Predicate
    - left_principal
    linkageType: ''
    returnType: datalog::Predicate
    signature: datalog::Predicate CanActAsToDLIR(const CanActAs& can_act_as)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:72,1
    - Dst: std::max
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' predicate_name'
    - depth
    argTypes:
    - std::string
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::UpdateCanSayDepth
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 1
    functionsReached:
    - std::max
    - insert
    linkageType: ''
    returnType: void
    signature: "void LoweringToDatalogPass::UpdateCanSayDepth(const std::string& predicate_name,\n
      \                                             uint64_t depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AttributeToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:91,1
    - Dst: Attribute
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:91,1
    - Dst: predicate
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:91,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:92,1
    - Dst: CanActAsToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:96,1
    - Dst: CanActAs
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:96,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:96,1
    - Dst: AttributeToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:99,1
    - Dst: raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:104,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:105,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' speaker'
    - ' attribute'
    argTypes:
    - Principal
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 107
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::SpokenAttributeToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 1
    functionsReached:
    - principal
    - raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
    - CanActAs
    - Attribute
    - CanActAsToDLIR
    - PushPrincipal
    - AttributeToDLIR
    - predicate
    linkageType: ''
    returnType: datalog::Rule
    signature: "datalog::Rule LoweringToDatalogPass::SpokenAttributeToDLIR(\n    const
      Principal& speaker, const Attribute& attribute)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CanActAsToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:121,1
    - Dst: CanActAs
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:121,1
    - Dst: right_principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:121,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:123,1
    - Dst: CanActAsToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:127,1
    - Dst: CanActAs
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:127,1
    - Dst: left_principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:127,1
    - Dst: CanActAsToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:130,1
    - Dst: raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:135,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:136,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' speaker'
    - ' can_act_as'
    argTypes:
    - Principal
    - CanActAs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 138
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::SpokenCanActAsToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 1
    functionsReached:
    - right_principal
    - CanActAs
    - raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
    - CanActAsToDLIR
    - PushPrincipal
    - left_principal
    linkageType: ''
    returnType: datalog::Rule
    signature: "datalog::Rule LoweringToDatalogPass::SpokenCanActAsToDLIR(\n    const
      Principal& speaker, const CanActAs& can_act_as)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:143,1
    - Dst: std::vector<datalog::Rule>
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' speaker'
    - ' predicate'
    argTypes:
    - Principal
    - datalog::Predicate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIRInner
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 1
    functionsReached:
    - std::vector<datalog::Rule>
    - std::make_pair
    linkageType: ''
    returnType: std::pair<datalog::Predicate, std::vector<datalog::Rule>>
    signature: "std::pair<datalog::Predicate, std::vector<datalog::Rule>> LoweringToDatalogPass::BaseFactToDLIRInner(\n
      \   const Principal& speaker, const datalog::Predicate& predicate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:149,1
    - Dst: AttributeToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:150,1
    - Dst: std::vector<datalog::Rule>
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:151,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::SpokenAttributeToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' speaker'
    - ' attribute'
    argTypes:
    - Principal
    - Attribute
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIRInner
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 1
    functionsReached:
    - std::vector<datalog::Rule>
    - AttributeToDLIR
    - std::make_pair
    - raksha::ir::auth_logic::LoweringToDatalogPass::SpokenAttributeToDLIR
    linkageType: ''
    returnType: std::pair<datalog::Predicate, std::vector<datalog::Rule>>
    signature: "std::pair<datalog::Predicate, std::vector<datalog::Rule>> LoweringToDatalogPass::BaseFactToDLIRInner(const
      Principal& speaker,\n                                           const Attribute&
      attribute)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:157,1
    - Dst: CanActAsToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:158,1
    - Dst: std::vector<datalog::Rule>
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:159,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::SpokenCanActAsToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' speaker'
    - ' canActAs'
    argTypes:
    - Principal
    - CanActAs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIRInner
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 1
    functionsReached:
    - std::vector<datalog::Rule>
    - CanActAsToDLIR
    - std::make_pair
    - raksha::ir::auth_logic::LoweringToDatalogPass::SpokenCanActAsToDLIR
    linkageType: ''
    returnType: std::pair<datalog::Predicate, std::vector<datalog::Rule>>
    signature: "std::pair<datalog::Predicate, std::vector<datalog::Rule>> LoweringToDatalogPass::BaseFactToDLIRInner(const
      Principal& speaker,\n                                           const CanActAs&
      canActAs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:165,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIRInner
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:167,1
    - Dst: GetValue
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' speaker'
    - ' base_fact'
    argTypes:
    - Principal
    - BaseFact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 2
    functionsReached:
    - raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIRInner
    - std::visit
    - GetValue
    linkageType: ''
    returnType: std::pair<datalog::Predicate, std::vector<datalog::Rule>>
    signature: "std::pair<datalog::Predicate, std::vector<datalog::Rule>> LoweringToDatalogPass::BaseFactToDLIR(const
      Principal& speaker,\n                                      const BaseFact& base_fact)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:174,1
    - Dst: base_fact
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:174,1
    - Dst: delegation_chain
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:176,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:187,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:189,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:190,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:192,1
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:195,1
    - Dst: raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:195,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:204,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::UpdateCanSayDepth
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:207,1
    - Dst: datalog::Predicate::name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:207,1
    - Dst: std::distance
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:208,1
    - Dst: delegation_chain
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:208,1
    - Dst: delegation_chain
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:209,1
    - Dst: std::make_pair
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' speaker'
    - ' fact'
    argTypes:
    - Principal
    - Fact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 211
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::FactToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 3
    functionsReached:
    - datalog::Predicate::name
    - std::make_pair
    - raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
    - raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIR
    - std::distance
    - delegation_chain
    - PushPrincipal
    - base_fact
    - raksha::ir::auth_logic::LoweringToDatalogPass::UpdateCanSayDepth
    - push_back
    linkageType: ''
    returnType: std::pair<datalog::Predicate, std::vector<datalog::Rule>>
    signature: std::pair<datalog::Predicate, std::vector<datalog::Rule>> LoweringToDatalogPass::FactToDLIR(const
      Principal& speaker, const Fact& fact)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::FactToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:215,1
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:216,1
    - Dst: raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:217,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' speaker'
    - ' fact'
    argTypes:
    - Principal
    - Fact
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 219
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::GenerateDLIRAssertions
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 1
    functionsReached:
    - raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
    - push_back
    - PushPrincipal
    - raksha::ir::auth_logic::LoweringToDatalogPass::FactToDLIR
    linkageType: ''
    returnType: std::vector<datalog::Rule>
    signature: "std::vector<datalog::Rule> LoweringToDatalogPass::GenerateDLIRAssertions(\n
      \   const Principal& speaker, const Fact& fact)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<datalog::Predicate>
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:224,1
    - Dst: rhs
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:225,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:226,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:227,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::FactToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:229,1
    - Dst: lhs
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:229,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:230,1
    - Dst: push_back
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:231,1
    - Dst: raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' speaker'
    - ' conditional_assertion'
    argTypes:
    - Principal
    - ConditionalAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 233
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::GenerateDLIRAssertions
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 1
    functionsReached:
    - utils::MapIter<datalog::Predicate>
    - lhs
    - raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
    - raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIR
    - PushPrincipal
    - rhs
    - raksha::ir::auth_logic::LoweringToDatalogPass::FactToDLIR
    - push_back
    linkageType: ''
    returnType: std::vector<datalog::Rule>
    signature: "std::vector<datalog::Rule> LoweringToDatalogPass::GenerateDLIRAssertions(\n
      \   const Principal& speaker,\n    const ConditionalAssertion& conditional_assertion)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:237,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::GenerateDLIRAssertions
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:243,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::GenerateDLIRAssertions
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:246,1
    - Dst: GetValue
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' speaker'
    - ' assertion'
    argTypes:
    - Principal
    - Assertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 235
    functionDepth: 4
    functionLinenumber: 235
    functionLinenumberEnd: 249
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::SingleSaysAssertionToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 1
    functionsReached:
    - GetValue
    - raksha::ir::auth_logic::LoweringToDatalogPass::GenerateDLIRAssertions
    - std::visit
    linkageType: ''
    returnType: std::vector<datalog::Rule>
    signature: "std::vector<datalog::Rule> LoweringToDatalogPass::SingleSaysAssertionToDLIR(\n
      \   const Principal& speaker, const Assertion& assertion)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assertions
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:254,1
    - Dst: absl::c_move
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:255,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::SingleSaysAssertionToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:256,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:256,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' says_assertion'
    argTypes:
    - SaysAssertion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 251
    functionDepth: 5
    functionLinenumber: 251
    functionLinenumberEnd: 260
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::SaysAssertionToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 1
    functionsReached:
    - principal
    - assertions
    - raksha::ir::auth_logic::LoweringToDatalogPass::SingleSaysAssertionToDLIR
    - absl::c_move
    - std::back_inserter
    linkageType: ''
    returnType: std::vector<datalog::Rule>
    signature: "std::vector<datalog::Rule> LoweringToDatalogPass::SaysAssertionToDLIR(\n
      \   const SaysAssertion& says_assertion)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::c_move
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:266,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::SaysAssertionToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:266,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' says_assertions'
    argTypes:
    - std::vector<SaysAssertion>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 262
    functionDepth: 6
    functionLinenumber: 262
    functionLinenumberEnd: 269
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::SaysAssertionsToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 1
    functionsReached:
    - std::back_inserter
    - absl::c_move
    - raksha::ir::auth_logic::LoweringToDatalogPass::SaysAssertionToDLIR
    linkageType: ''
    returnType: std::vector<datalog::Rule>
    signature: "std::vector<datalog::Rule> LoweringToDatalogPass::SaysAssertionsToDLIR(\n
      \   const std::vector<SaysAssertion>& says_assertions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<datalog::Rule>
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:273,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::FactToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:274,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:274,1
    - Dst: fact
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:274,1
    - Dst: PushPrincipal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:275,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:275,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:276,1
    - Dst: raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' queries'
    argTypes:
    - std::vector<Query>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 271
    functionDepth: 3
    functionLinenumber: 271
    functionLinenumberEnd: 280
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::QueriesToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 1
    functionsReached:
    - principal
    - fact
    - raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
    - name
    - utils::MapIter<datalog::Rule>
    - PushPrincipal
    - raksha::ir::auth_logic::LoweringToDatalogPass::FactToDLIR
    linkageType: ''
    returnType: std::vector<datalog::Rule>
    signature: "std::vector<datalog::Rule> LoweringToDatalogPass::QueriesToDLIR(\n
      \   const std::vector<Query>& queries)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<datalog::RelationDeclaration>
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:290,1
    - Dst: is_attribute
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:293,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:295,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:296,1
    - Dst: absl::c_copy
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:297,1
    - Dst: arguments
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:297,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:298,1
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:300,1
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' relation_declarations'
    argTypes:
    - std::vector<datalog::RelationDeclaration>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 303
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::TransformAttributeDeclarations
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 1
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - utils::MapIter<datalog::RelationDeclaration>
    - absl::c_copy
    - arguments
    - is_attribute
    - std::back_inserter
    - raksha::ir::datalog::RelationDeclaration::RelationDeclaration
    - raksha::ir::datalog::Argument::Argument
    - relation_name
    linkageType: ''
    returnType: std::vector<datalog::RelationDeclaration>
    signature: "std::vector<datalog::RelationDeclaration> LoweringToDatalogPass::TransformAttributeDeclarations(\n
      \   const std::vector<datalog::RelationDeclaration>& relation_declarations)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:325,1
    - Dst: end
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:326,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:330,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:330,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:331,1
    - Dst: absl::c_copy
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:339,1
    - Dst: arguments
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:339,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:340,1
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:342,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:343,1
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:344,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:346,1
    - Dst: absl::c_copy
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:357,1
    - Dst: std::vector::at
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:357,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:358,1
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:360,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:361,1
    - Dst: std::vector::at
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:362,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:364,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - "\n        type_environment"
    argTypes:
    - absl::flat_hash_map<std::string_view, datalog::RelationDeclaration>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 368
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::GetCanSayDeclarations
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 1
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - find
    - std::vector::push_back
    - absl::c_copy
    - arguments
    - std::back_inserter
    - raksha::ir::datalog::RelationDeclaration::RelationDeclaration
    - raksha::ir::datalog::Argument::Argument
    - end
    - absl::StrCat
    - std::vector::at
    - relation_name
    linkageType: ''
    returnType: std::vector<datalog::RelationDeclaration>
    signature: "std::vector<datalog::RelationDeclaration> LoweringToDatalogPass::GetCanSayDeclarations(\n
      \   const absl::flat_hash_map<std::string_view, datalog::RelationDeclaration>&\n
      \       type_environment)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<datalog::RelationDeclaration>
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:377,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:380,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:381,1
    - Dst: absl::c_copy
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:382,1
    - Dst: arguments
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:382,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:382,1
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:383,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:384,1
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' transformed_declarations'
    argTypes:
    - std::vector<datalog::RelationDeclaration>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 387
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::GetSaysExtendRelationDeclarations
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 1
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - utils::MapIter<datalog::RelationDeclaration>
    - absl::c_copy
    - arguments
    - std::back_inserter
    - raksha::ir::datalog::RelationDeclaration::RelationDeclaration
    - raksha::ir::datalog::Argument::Argument
    - absl::StrCat
    - relation_name
    linkageType: ''
    returnType: std::vector<datalog::RelationDeclaration>
    signature: "std::vector<datalog::RelationDeclaration> LoweringToDatalogPass::GetSaysExtendRelationDeclarations(\n
      \   const std::vector<datalog::RelationDeclaration>& transformed_declarations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::TransformAttributeDeclarations
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:398,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:406,1
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:406,1
    - Dst: absl::c_move
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:408,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::GetCanSayDeclarations
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:408,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:409,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:413,1
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:413,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:415,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:415,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:416,1
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:416,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::GetSaysExtendRelationDeclarations
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' relation_declarations'
    argTypes:
    - std::vector<datalog::RelationDeclaration>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 389
    functionDepth: 3
    functionLinenumber: 389
    functionLinenumberEnd: 424
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::RelationDeclarationToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 1
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - raksha::ir::auth_logic::LoweringToDatalogPass::GetCanSayDeclarations
    - std::vector::push_back
    - absl::flat_hash_map::insert
    - raksha::ir::auth_logic::LoweringToDatalogPass::GetSaysExtendRelationDeclarations
    - absl::c_move
    - std::back_inserter
    - raksha::ir::datalog::RelationDeclaration::RelationDeclaration
    - raksha::ir::datalog::Argument::Argument
    - raksha::ir::auth_logic::LoweringToDatalogPass::TransformAttributeDeclarations
    - relation_name
    linkageType: ''
    returnType: std::vector<datalog::RelationDeclaration>
    signature: "std::vector<datalog::RelationDeclaration> LoweringToDatalogPass::RelationDeclarationToDLIR(\n
      \   const std::vector<datalog::RelationDeclaration>& relation_declarations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<datalog::RelationDeclaration>
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:432,1
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:434,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:435,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:436,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:438,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:442,1
    - Dst: raksha::ir::datalog::RelationDeclaration::RelationDeclaration
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:442,1
    - Dst: raksha::ir::datalog::Argument::Argument
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:444,1
    - Dst: raksha::ir::datalog::ArgumentType::MakeCustomType
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' queries'
    argTypes:
    - std::vector<Query>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 447
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::QueryRelationDeclarationToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 1
    functionsReached:
    - std::vector::push_back
    - name
    - utils::MapIter<datalog::RelationDeclaration>
    - raksha::ir::datalog::RelationDeclaration::RelationDeclaration
    - raksha::ir::datalog::ArgumentType::MakeCustomType
    - raksha::ir::datalog::Argument::Argument
    linkageType: ''
    returnType: std::vector<datalog::RelationDeclaration>
    signature: "std::vector<datalog::RelationDeclaration> LoweringToDatalogPass::QueryRelationDeclarationToDLIR(\n
      \   const std::vector<Query>& queries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::SaysAssertionsToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:450,1
    - Dst: says_assertions
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:450,1
    - Dst: absl::c_move
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:454,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::QueriesToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:454,1
    - Dst: queries
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:454,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:455,1
    - Dst: auto::push_back
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:456,1
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:458,1
    - Dst: queries
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:459,1
    - Dst: name
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:459,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::RelationDeclarationToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:467,1
    - Dst: relation_declarations
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:467,1
    - Dst: absl::c_move
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:468,1
    - Dst: raksha::ir::auth_logic::LoweringToDatalogPass::QueryRelationDeclarationToDLIR
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:468,1
    - Dst: queries
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:468,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:469,1
    - Dst: raksha::ir::datalog::Program::Program
      Src: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' program'
    argTypes:
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 449
    functionDepth: 7
    functionLinenumber: 449
    functionLinenumberEnd: 472
    functionName: raksha::ir::auth_logic::LoweringToDatalogPass::ProgToDLIR
    functionSourceFile: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::LoweringToDatalogPass::RelationDeclarationToDLIR
    - raksha::ir::auth_logic::LoweringToDatalogPass::SaysAssertionsToDLIR
    - auto::push_back
    - utils::MapIter<std::string>
    - raksha::ir::auth_logic::LoweringToDatalogPass::QueryRelationDeclarationToDLIR
    - queries
    - raksha::ir::auth_logic::LoweringToDatalogPass::QueriesToDLIR
    - absl::c_move
    - name
    - std::back_inserter
    - raksha::ir::datalog::Program::Program
    - relation_declarations
    - says_assertions
    linkageType: ''
    returnType: datalog::Program
    signature: datalog::Program LoweringToDatalogPass::ProgToDLIR(const Program& program)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::RelationDeclarationEnvironmentVisitor
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RelationDeclarationEnvironmentVisitor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::decl_map
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DeclarationMapType
    signature: DeclarationMapType decl_map()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:36,1
    - Dst: find
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:37,1
    - Dst: end
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:37,1
    - Dst: insert
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:38,1
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:38,1
    - Dst: LOG
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rel_decl'
    argTypes:
    - datalog::RelationDeclaration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::AddDeclaration
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment.cc
    functionUses: 0
    functionsReached:
    - find
    - LOG
    - end
    - insert
    - relation_name
    linkageType: ''
    returnType: void
    signature: void AddDeclaration(const datalog::RelationDeclaration& rel_decl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::AddDeclaration
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:50,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rel_decl'
    argTypes:
    - datalog::RelationDeclaration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment.cc
    functionUses: 0
    functionsReached:
    - Unit
    - raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::AddDeclaration
    linkageType: ''
    returnType: Unit
    signature: Unit Visit(const datalog::RelationDeclaration& rel_decl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::RelationDeclarationEnvironmentVisitor
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RelationDeclarationEnvironmentVisitor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::decl_map
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DeclarationMapType
    signature: DeclarationMapType decl_map()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:36,1
    - Dst: find
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:37,1
    - Dst: end
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:37,1
    - Dst: insert
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:38,1
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:38,1
    - Dst: LOG
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rel_decl'
    argTypes:
    - datalog::RelationDeclaration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::AddDeclaration
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment.cc
    functionUses: 1
    functionsReached:
    - find
    - LOG
    - end
    - insert
    - relation_name
    linkageType: ''
    returnType: void
    signature: void AddDeclaration(const datalog::RelationDeclaration& rel_decl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::AddDeclaration
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:50,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rel_decl'
    argTypes:
    - datalog::RelationDeclaration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment.cc
    functionUses: 0
    functionsReached:
    - Unit
    - raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::AddDeclaration
    linkageType: ''
    returnType: Unit
    signature: Unit Visit(const datalog::RelationDeclaration& rel_decl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Accept
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:59,1
    - Dst: RelationDeclarationEnvironmentVisitor::decl_map
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' prog'
    argTypes:
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: raksha::ir::auth_logic::DeclarationEnvironment::DeclarationEnvironment
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment.cc
    functionUses: 0
    functionsReached:
    - Accept
    - RelationDeclarationEnvironmentVisitor::decl_map
    linkageType: ''
    returnType: void
    signature: void DeclarationEnvironment::DeclarationEnvironment(const Program&
      prog)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:65,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:66,1
    - Dst: end
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - relation_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: raksha::ir::auth_logic::DeclarationEnvironment::GetDeclarationOrFatal
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment.cc
    functionUses: 0
    functionsReached:
    - find
    - CHECK
    - end
    linkageType: ''
    returnType: datalog::RelationDeclaration
    signature: "datalog::RelationDeclaration DeclarationEnvironment::GetDeclarationOrFatal(\n
      \   absl::string_view relation_name) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::RelationDeclarationEnvironmentVisitor
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RelationDeclarationEnvironmentVisitor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::decl_map
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DeclarationMapType
    signature: DeclarationMapType decl_map()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:36,1
    - Dst: find
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:37,1
    - Dst: end
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:37,1
    - Dst: insert
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:38,1
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:38,1
    - Dst: LOG
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rel_decl'
    argTypes:
    - datalog::RelationDeclaration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::AddDeclaration
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment.cc
    functionUses: 2
    functionsReached:
    - find
    - LOG
    - end
    - insert
    - relation_name
    linkageType: ''
    returnType: void
    signature: void AddDeclaration(const datalog::RelationDeclaration& rel_decl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::AddDeclaration
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:50,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rel_decl'
    argTypes:
    - datalog::RelationDeclaration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment.cc
    functionUses: 0
    functionsReached:
    - Unit
    - raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::AddDeclaration
    linkageType: ''
    returnType: Unit
    signature: Unit Visit(const datalog::RelationDeclaration& rel_decl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::RelationDeclarationEnvironmentVisitor
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RelationDeclarationEnvironmentVisitor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::decl_map
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DeclarationMapType
    signature: DeclarationMapType decl_map()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:36,1
    - Dst: find
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:37,1
    - Dst: end
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:37,1
    - Dst: insert
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:38,1
    - Dst: relation_name
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:38,1
    - Dst: LOG
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rel_decl'
    argTypes:
    - datalog::RelationDeclaration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::AddDeclaration
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment.cc
    functionUses: 3
    functionsReached:
    - find
    - LOG
    - end
    - insert
    - relation_name
    linkageType: ''
    returnType: void
    signature: void AddDeclaration(const datalog::RelationDeclaration& rel_decl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::AddDeclaration
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:50,1
    - Dst: Unit
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rel_decl'
    argTypes:
    - datalog::RelationDeclaration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::Visit
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment.cc
    functionUses: 0
    functionsReached:
    - Unit
    - raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::AddDeclaration
    linkageType: ''
    returnType: Unit
    signature: Unit Visit(const datalog::RelationDeclaration& rel_decl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Accept
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:59,1
    - Dst: RelationDeclarationEnvironmentVisitor::decl_map
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' prog'
    argTypes:
    - Program
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: raksha::ir::auth_logic::DeclarationEnvironment::DeclarationEnvironment
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment.cc
    functionUses: 0
    functionsReached:
    - Accept
    - RelationDeclarationEnvironmentVisitor::decl_map
    linkageType: ''
    returnType: void
    signature: void DeclarationEnvironment::DeclarationEnvironment(const Program&
      prog)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:65,1
    - Dst: CHECK
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:66,1
    - Dst: end
      Src: /src/raksha/src/ir/auth_logic/declaration_environment.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - relation_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: raksha::ir::auth_logic::DeclarationEnvironment::GetDeclarationOrFatal
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment.cc
    functionUses: 0
    functionsReached:
    - find
    - CHECK
    - end
    linkageType: ''
    returnType: datalog::RelationDeclaration
    signature: "datalog::RelationDeclaration DeclarationEnvironment::GetDeclarationOrFatal(\n
      \   absl::string_view relation_name) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:31,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:31,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:32,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(PredicateToStringTest, SimplePredicateTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:39,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:40,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:41,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(ArgumentTypeToStringTest, SimpleArgumentTypeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:48,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:49,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:50,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(ArgumentToStringTest, SimpleArgumentTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:59,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:61,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(RelationDeclarationToStringTest, SimpleDeclarationTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:68,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(PrincipalToStringTest, SimplePrincipalTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:75,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(AttributeToStringTest, SimpleAttributeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:81,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(CanActAsToStringTest, SimpleCanActAsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:88,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:89,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:90,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(BaseFactToStringTest, SimpleBaseFactTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:96,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:97,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(FactToStringTest, SimpleFactTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:103,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:106,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(ConditionalAssertionToStringTest, SimpleCondAssertionTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:114,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:115,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(AssertionToStringTest, SimpleAssertionTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:123,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:125,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(SaysAssertionToStringTest, SimpleSaysAssertionTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:134,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:137,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(QueryToStringTest, SimpleQueryTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:144,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(ProgramToStringTest, SimpleProgramTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:31,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:31,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:32,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(PredicateToStringTest, SimplePredicateTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:39,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:40,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:41,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(ArgumentTypeToStringTest, SimpleArgumentTypeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:48,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:49,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:50,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(ArgumentToStringTest, SimpleArgumentTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:59,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:61,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(RelationDeclarationToStringTest, SimpleDeclarationTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:68,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(PrincipalToStringTest, SimplePrincipalTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:75,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(AttributeToStringTest, SimpleAttributeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:81,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(CanActAsToStringTest, SimpleCanActAsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:88,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:89,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:90,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(BaseFactToStringTest, SimpleBaseFactTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:96,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:97,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(FactToStringTest, SimpleFactTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:103,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:106,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(ConditionalAssertionToStringTest, SimpleCondAssertionTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:114,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:115,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(AssertionToStringTest, SimpleAssertionTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:123,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:125,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(SaysAssertionToStringTest, SimpleSaysAssertionTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:134,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:137,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(QueryToStringTest, SimpleQueryTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:144,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_string_test.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_string_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::auth_logic::ToString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(ProgramToStringTest, SimpleProgramTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: "&\n  literal_type_map() const"
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::flat_hash_map<std::string, datalog::ArgumentType>
    signature: "absl::flat_hash_map<std::string, datalog::ArgumentType> &\n  literal_type_map()
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: "&\n  literal_type_map() const"
    functionSourceFile: /src/raksha/src/ir/auth_logic/type_environment.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::flat_hash_map<std::string, datalog::ArgumentType>
    signature: "absl::flat_hash_map<std::string, datalog::ArgumentType> &\n  literal_type_map()
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:45,1
    - Dst: raksha::ir::auth_logic::ParseProgram
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:46,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:47,1
    - Dst: Program::says_assertions
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:47,1
    - Dst: Program::says_assertions
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:49,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:50,1
    - Dst: assertions
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:50,1
    - Dst: size
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:50,1
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:51,1
    - Dst: assertions
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:52,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:53,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:54,1
    - Dst: ::testing::UnorderedElementsAreArray
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 44
    functionDepth: 9
    functionLinenumber: 44
    functionLinenumberEnd: 56
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc
    functionUses: 0
    functionsReached:
    - principal
    - EXPECT_EQ
    - utils::MapIter<std::string>
    - assertions
    - Program::says_assertions
    - raksha::ir::auth_logic::ParseProgram
    - raksha::ir::auth_logic::ToString
    - EXPECT_THAT
    - ASSERT_EQ
    - size
    - ::testing::UnorderedElementsAreArray
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(SaysAssertionAstConstructionTest, SimpleTestWithSaysAssertionProgram)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:45,1
    - Dst: raksha::ir::auth_logic::ParseProgram
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:46,1
    - Dst: ASSERT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:47,1
    - Dst: Program::says_assertions
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:47,1
    - Dst: Program::says_assertions
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:49,1
    - Dst: principal
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:50,1
    - Dst: assertions
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:50,1
    - Dst: size
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:50,1
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:51,1
    - Dst: assertions
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:52,1
    - Dst: raksha::ir::auth_logic::ToString
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:53,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:54,1
    - Dst: ::testing::UnorderedElementsAreArray
      Src: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 44
    functionDepth: 9
    functionLinenumber: 44
    functionLinenumberEnd: 56
    functionName: raksha::ir::auth_logic::TEST_P
    functionSourceFile: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc
    functionUses: 0
    functionsReached:
    - principal
    - EXPECT_EQ
    - utils::MapIter<std::string>
    - assertions
    - Program::says_assertions
    - raksha::ir::auth_logic::ParseProgram
    - raksha::ir::auth_logic::ToString
    - EXPECT_THAT
    - ASSERT_EQ
    - size
    - ::testing::UnorderedElementsAreArray
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(SaysAssertionAstConstructionTest, SimpleTestWithSaysAssertionProgram)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc:24,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc:29,1
    - Dst: DeclarationEnvironment::GetDeclarationOrFatal
      Src: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc:29,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc:30,1
    - Dst: DeclarationEnvironment::GetDeclarationOrFatal
      Src: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc
    functionUses: 0
    functionsReached:
    - DeclarationEnvironment::GetDeclarationOrFatal
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(DeclarationEnvironmentTests, LookupTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc:36,1
    - Dst: DeclarationEnvironment::GetDeclarationOrFatal
      Src: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc
    functionUses: 0
    functionsReached:
    - DeclarationEnvironment::GetDeclarationOrFatal
    - EXPECT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(DeclarationEnvironmentTests, FatalLookupTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    linkageType: ''
    returnType: void
    signature: void TEST(DeclarationEnvironmentTests, FatalAddTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc:24,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc:29,1
    - Dst: DeclarationEnvironment::GetDeclarationOrFatal
      Src: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc:29,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc:30,1
    - Dst: DeclarationEnvironment::GetDeclarationOrFatal
      Src: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc
    functionUses: 0
    functionsReached:
    - DeclarationEnvironment::GetDeclarationOrFatal
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(DeclarationEnvironmentTests, LookupTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc:36,1
    - Dst: DeclarationEnvironment::GetDeclarationOrFatal
      Src: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc
    functionUses: 0
    functionsReached:
    - DeclarationEnvironment::GetDeclarationOrFatal
    - EXPECT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(DeclarationEnvironmentTests, FatalLookupTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ir::datalog::ArgumentType::MakePrincipalType
      Src: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: raksha::ir::auth_logic::TEST
    functionSourceFile: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::datalog::ArgumentType::MakePrincipalType
    linkageType: ''
    returnType: void
    signature: void TEST(DeclarationEnvironmentTests, FatalAddTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::StartsWith
      Src: /src/raksha/src/ir/auth_logic/is_name_constant.cc:26,1
    - Dst: absl::EndsWith
      Src: /src/raksha/src/ir/auth_logic/is_name_constant.cc:26,1
    - Dst: absl::SimpleAtoi
      Src: /src/raksha/src/ir/auth_logic/is_name_constant.cc:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - id
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: raksha::ir::auth_logic::IsNameConstant
    functionSourceFile: /src/raksha/src/ir/auth_logic/is_name_constant.cc
    functionUses: 2
    functionsReached:
    - absl::StartsWith
    - absl::EndsWith
    - absl::SimpleAtoi
    linkageType: ''
    returnType: bool
    signature: bool IsNameConstant(absl::string_view id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::StartsWith
      Src: /src/raksha/src/ir/auth_logic/is_name_constant.cc:26,1
    - Dst: absl::EndsWith
      Src: /src/raksha/src/ir/auth_logic/is_name_constant.cc:26,1
    - Dst: absl::SimpleAtoi
      Src: /src/raksha/src/ir/auth_logic/is_name_constant.cc:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - id
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: raksha::ir::auth_logic::IsNameConstant
    functionSourceFile: /src/raksha/src/ir/auth_logic/is_name_constant.cc
    functionUses: 2
    functionsReached:
    - absl::StartsWith
    - absl::EndsWith
    - absl::SimpleAtoi
    linkageType: ''
    returnType: bool
    signature: bool IsNameConstant(absl::string_view id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_cast<Result>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:100,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Any
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: raksha::parser::ir::CheckAnyCast
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - std::any_cast<Result>
    - CHECK
    linkageType: ''
    returnType: Result
    signature: Result & CheckAnyCast(const Any& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<IRContext>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:116,1
    - Dst: std::make_unique<Module>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:117,1
    - Dst: std::make_unique<SsaNames>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: raksha::parser::ir::IrVisitor::IrVisitor
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<IRContext>
    - std::make_unique<SsaNames>
    - std::make_unique<Module>
    linkageType: ''
    returnType: void
    signature: void IrVisitor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IrParser::StringLiteralContext*::stringLiteralContents::getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:123,1
    - Dst: CHECK_GE
      Src: /src/raksha/src/parser/ir/ir_parser.cc:126,1
    - Dst: std::string::size
      Src: /src/raksha/src/parser/ir/ir_parser.cc:126,1
    - Dst: CHECK_EQ
      Src: /src/raksha/src/parser/ir/ir_parser.cc:127,1
    - Dst: std::string::front
      Src: /src/raksha/src/parser/ir/ir_parser.cc:127,1
    - Dst: CHECK_EQ
      Src: /src/raksha/src/parser/ir/ir_parser.cc:128,1
    - Dst: std::string::back
      Src: /src/raksha/src/parser/ir/ir_parser.cc:128,1
    - Dst: IrParser::StringLiteralContext*::stringLiteralContents::getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:129,1
    - Dst: std::string::size
      Src: /src/raksha/src/parser/ir/ir_parser.cc:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - string_context
    argTypes:
    - IrParser::StringLiteralContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 131
    functionName: raksha::parser::ir::IrVisitor::visitStringLiteral
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - CHECK_GE
    - IrParser::StringLiteralContext*::stringLiteralContents::getText
    - std::string::back
    - CHECK_EQ
    - std::string::size
    - std::string::front
    linkageType: ''
    returnType: Any
    signature: "Any visitStringLiteral(\n      IrParser::StringLiteralContext* string_context)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ValueId
      Src: /src/raksha/src/parser/ir/ir_parser.cc:134,1
    - Dst: AnyId
      Src: /src/raksha/src/parser/ir/ir_parser.cc:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - any_context
    argTypes:
    - IrParser::AnyValueContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: raksha::parser::ir::IrVisitor::visitAnyValue
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ValueId
    - AnyId
    linkageType: ''
    returnType: Any
    signature: Any visitAnyValue(IrParser::AnyValueContext* any_context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ValueId
      Src: /src/raksha/src/parser/ir/ir_parser.cc:139,1
    - Dst: IrParser::NamedTempValueContext*::valueName::getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - named_temp_value_context
    argTypes:
    - IrParser::NamedTempValueContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: raksha::parser::ir::IrVisitor::visitNamedTempValue
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ValueId
    - IrParser::NamedTempValueContext*::valueName::getText
    linkageType: ''
    returnType: Any
    signature: "Any visitNamedTempValue(\n      IrParser::NamedTempValueContext* named_temp_value_context)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<ValueId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:144,1
    - Dst: IrParser::ResultContext*::namedTempValue
      Src: /src/raksha/src/parser/ir/ir_parser.cc:145,1
    - Dst: CheckAnyCast<ValueId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:146,1
    - Dst: accept
      Src: /src/raksha/src/parser/ir/ir_parser.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - result_context
    argTypes:
    - IrParser::ResultContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: raksha::parser::ir::IrVisitor::visitResult
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - accept
    - IrParser::ResultContext*::namedTempValue
    - CheckAnyCast<ValueId>
    - utils::MapIter<ValueId>
    linkageType: ''
    returnType: Any
    signature: Any visitResult(IrParser::ResultContext* result_context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<ValueId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:152,1
    - Dst: IrParser::ArgumentListContext*::value
      Src: /src/raksha/src/parser/ir/ir_parser.cc:153,1
    - Dst: CheckAnyCast<ValueId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:154,1
    - Dst: accept
      Src: /src/raksha/src/parser/ir/ir_parser.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - argument_list_context
    argTypes:
    - IrParser::ArgumentListContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: raksha::parser::ir::IrVisitor::visitArgumentList
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - IrParser::ArgumentListContext*::value
    - accept
    - CheckAnyCast<ValueId>
    - utils::MapIter<ValueId>
    linkageType: ''
    returnType: Any
    signature: "Any visitArgumentList(\n      IrParser::ArgumentListContext* argument_list_context)
      override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:162,1
    - Dst: getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:162,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:164,1
    - Dst: std::string::empty
      Src: /src/raksha/src/parser/ir/ir_parser.cc:164,1
    - Dst: std::string::back
      Src: /src/raksha/src/parser/ir/ir_parser.cc:165,1
    - Dst: std::string::substr
      Src: /src/raksha/src/parser/ir/ir_parser.cc:166,1
    - Dst: std::string::size
      Src: /src/raksha/src/parser/ir/ir_parser.cc:166,1
    - Dst: absl::SimpleAtod
      Src: /src/raksha/src/parser/ir/ir_parser.cc:168,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:169,1
    - Dst: Attribute::Create<FloatAttribute>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - float_attribute_context
    argTypes:
    - IrParser::FloatAttributeContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 171
    functionName: raksha::parser::ir::IrVisitor::visitFloatAttribute
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - std::string::back
    - absl::SimpleAtod
    - std::string::substr
    - std::string::size
    - CHECK
    - std::string::empty
    - Attribute::Create<FloatAttribute>
    - getText
    linkageType: ''
    returnType: Any
    signature: "Any visitFloatAttribute(\n      IrParser::FloatAttributeContext* float_attribute_context)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::SimpleAtoi
      Src: /src/raksha/src/parser/ir/ir_parser.cc:176,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:177,1
    - Dst: getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:177,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:179,1
    - Dst: Attribute::Create<Int64Attribute>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - num_attribute_context
    argTypes:
    - IrParser::NumAttributeContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 181
    functionName: raksha::parser::ir::IrVisitor::visitNumAttribute
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - Attribute::Create<Int64Attribute>
    - CHECK
    - getText
    - absl::SimpleAtoi
    linkageType: ''
    returnType: Any
    signature: "Any visitNumAttribute(\n      IrParser::NumAttributeContext* num_attribute_context)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Attribute::Create<StringAttribute>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:185,1
    - Dst: CheckAnyCast<std::string>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:185,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:186,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string_attribute_context
    argTypes:
    - IrParser::StringAttributeContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: raksha::parser::ir::IrVisitor::visitStringAttribute
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - Attribute::Create<StringAttribute>
    - ABSL_DIE_IF_NULL
    - CheckAnyCast<std::string>
    linkageType: ''
    returnType: Any
    signature: "Any visitStringAttribute(\n      IrParser::StringAttributeContext*
      string_attribute_context) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:192,1
    - Dst: std::make_pair
      Src: /src/raksha/src/parser/ir/ir_parser.cc:193,1
    - Dst: IrParser::AttributeContext*::name::getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:194,1
    - Dst: CheckAnyCast<Attribute>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:195,1
    - Dst: IrParser::AttributeContext*::attributePayload
      Src: /src/raksha/src/parser/ir/ir_parser.cc:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - attribute_context
    argTypes:
    - IrParser::AttributeContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 197
    functionName: raksha::parser::ir::IrVisitor::visitAttribute
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - IrParser::AttributeContext*::name::getText
    - std::make_pair
    - IrParser::AttributeContext*::attributePayload
    - CHECK
    - CheckAnyCast<Attribute>
    linkageType: ''
    returnType: Any
    signature: Any visitAttribute(IrParser::AttributeContext* attribute_context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/parser/ir/ir_parser.cc:201,1
    - Dst: IrParser::AttributeListContext*::attribute
      Src: /src/raksha/src/parser/ir/ir_parser.cc:202,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/parser/ir/ir_parser.cc:202,1
    - Dst: CheckAnyCast<std::pair<std::string, Attribute>>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:205,1
    - Dst: accept
      Src: /src/raksha/src/parser/ir/ir_parser.cc:206,1
    - Dst: insert
      Src: /src/raksha/src/parser/ir/ir_parser.cc:207,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - attribute_list_context
    argTypes:
    - IrParser::AttributeListContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 212
    functionName: raksha::parser::ir::IrVisitor::visitAttributeList
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - NamedAttributeMap
    - accept
    - raksha::common::utils::fold
    - IrParser::AttributeListContext*::attribute
    - CHECK
    - CheckAnyCast<std::pair<std::string, Attribute>>
    - insert
    linkageType: ''
    returnType: Any
    signature: "Any visitAttributeList(\n      IrParser::AttributeListContext* attribute_list_context)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckAnyCast<std::vector<ValueId>>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:223,1
    - Dst: IrParser::OperationContext*::result
      Src: /src/raksha/src/parser/ir/ir_parser.cc:224,1
    - Dst: IrParser::OperationContext*::operatorName::getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:225,1
    - Dst: raksha::parser::ir::IrVisitor::VisitContextOrDefaultIfNull
      Src: /src/raksha/src/parser/ir/ir_parser.cc:226,1
    - Dst: IrParser::OperationContext*::attributeList
      Src: /src/raksha/src/parser/ir/ir_parser.cc:227,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/parser/ir/ir_parser.cc:227,1
    - Dst: raksha::parser::ir::IrVisitor::VisitContextOrDefaultIfNull
      Src: /src/raksha/src/parser/ir/ir_parser.cc:228,1
    - Dst: IrParser::OperationContext*::argumentList
      Src: /src/raksha/src/parser/ir/ir_parser.cc:229,1
    - Dst: std::vector<ValueId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - operation_context
    argTypes:
    - IrParser::OperationContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 230
    functionName: raksha::parser::ir::IrVisitor::visitOperation
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - IrParser::OperationContext*::operatorName::getText
    - NamedAttributeMap
    - IrParser::OperationContext*::result
    - IrParser::OperationContext*::attributeList
    - raksha::parser::ir::IrVisitor::VisitContextOrDefaultIfNull
    - std::vector<ValueId>
    - IrParser::OperationContext*::argumentList
    - CheckAnyCast<std::vector<ValueId>>
    linkageType: ''
    returnType: Any
    signature: Any visitOperation(IrParser::OperationContext* operation_context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/raksha/src/parser/ir/ir_parser.cc:246,1
    - Dst: IrParser::BlockContext*::operation
      Src: /src/raksha/src/parser/ir/ir_parser.cc:246,1
    - Dst: IrParser::BlockContext*::operation
      Src: /src/raksha/src/parser/ir/ir_parser.cc:247,1
    - Dst: CheckAnyCast<OperationParts>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:249,1
    - Dst: accept
      Src: /src/raksha/src/parser/ir/ir_parser.cc:249,1
    - Dst: MaybeRegisterOperator
      Src: /src/raksha/src/parser/ir/ir_parser.cc:251,1
    - Dst: OperationParts::op_result_ids::size
      Src: /src/raksha/src/parser/ir/ir_parser.cc:252,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/parser/ir/ir_parser.cc:253,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:254,1
    - Dst: std::move
      Src: /src/raksha/src/parser/ir/ir_parser.cc:255,1
    - Dst: ValueList
      Src: /src/raksha/src/parser/ir/ir_parser.cc:256,1
    - Dst: std::move
      Src: /src/raksha/src/parser/ir/ir_parser.cc:257,1
    - Dst: std::vector::back
      Src: /src/raksha/src/parser/ir/ir_parser.cc:258,1
    - Dst: OperationParts::op_result_ids::size
      Src: /src/raksha/src/parser/ir/ir_parser.cc:259,1
    - Dst: OperationParts::op_result_ids::at
      Src: /src/raksha/src/parser/ir/ir_parser.cc:261,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:263,1
    - Dst: std::get_if<AnyId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:263,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/parser/ir/ir_parser.cc:266,1
    - Dst: std::get<TemporaryId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:267,1
    - Dst: raksha::ir::Value::MakeOperationResultValue
      Src: /src/raksha/src/parser/ir/ir_parser.cc:268,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:269,1
    - Dst: ssa_names::AddID
      Src: /src/raksha/src/parser/ir/ir_parser.cc:278,1
    - Dst: utils::MapIter<Value>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:284,1
    - Dst: std::visit
      Src: /src/raksha/src/parser/ir/ir_parser.cc:286,1
    - Dst: Value
      Src: /src/raksha/src/parser/ir/ir_parser.cc:289,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/parser/ir/ir_parser.cc:289,1
    - Dst: absl::flat_hash_map::find
      Src: /src/raksha/src/parser/ir/ir_parser.cc:293,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:294,1
    - Dst: absl::flat_hash_map::end
      Src: /src/raksha/src/parser/ir/ir_parser.cc:294,1
    - Dst: AddInput
      Src: /src/raksha/src/parser/ir/ir_parser.cc:301,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/parser/ir/ir_parser.cc:303,1
    - Dst: std::move
      Src: /src/raksha/src/parser/ir/ir_parser.cc:303,1
    - Dst: module::AddBlock
      Src: /src/raksha/src/parser/ir/ir_parser.cc:305,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/parser/ir/ir_parser.cc:305,1
    - Dst: Unit
      Src: /src/raksha/src/parser/ir/ir_parser.cc:306,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - block_context
    argTypes:
    - IrParser::BlockContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 307
    functionName: raksha::parser::ir::IrVisitor::visitBlock
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::vector::back
    - MaybeRegisterOperator
    - std::move
    - std::get_if<AnyId>
    - module::AddBlock
    - absl::flat_hash_map::end
    - std::get<TemporaryId>
    - ValueList
    - std::make_unique<Operation>
    - absl::flat_hash_map::find
    - ssa_names::AddID
    - IrParser::BlockContext*::operation
    - OperationParts::op_result_ids::size
    - raksha::ir::Value::MakeOperationResultValue
    - std::visit
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - Unit
    - Value
    - accept
    - absl::flat_hash_map::insert
    - CheckAnyCast<OperationParts>
    - AddInput
    - std::vector::reserve
    - BlockBuilder::build
    - CHECK
    - utils::MapIter<Value>
    - BlockBuilder::AddOperation
    - OperationParts::op_result_ids::at
    linkageType: ''
    returnType: Any
    signature: Any visitBlock(IrParser::BlockContext* block_context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IrParser::ModuleContext*::block
      Src: /src/raksha/src/parser/ir/ir_parser.cc:310,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:311,1
    - Dst: Unit
      Src: /src/raksha/src/parser/ir/ir_parser.cc:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - context
    argTypes:
    - IrParser::ModuleContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: raksha::parser::ir::IrVisitor::visitModule
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - IrParser::ModuleContext*::block
    - Unit
    linkageType: ''
    returnType: Any
    signature: Any visitModule(IrParser::ModuleContext* context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IrParser::IrProgramContext*::module
      Src: /src/raksha/src/parser/ir/ir_parser.cc:317,1
    - Dst: Unit
      Src: /src/raksha/src/parser/ir/ir_parser.cc:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - IrParser::IrProgramContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: raksha::parser::ir::IrVisitor::visitIrProgram
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - Unit
    - IrParser::IrProgramContext*::module
    linkageType: ''
    returnType: Any
    signature: Any visitIrProgram(IrParser::IrProgramContext* context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/parser/ir/ir_parser.cc:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 321
    functionName: raksha::parser::ir::IrVisitor::TakeResult
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: IrProgramParserResult
    signature: IrProgramParserResult TakeResult()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsRegisteredOperator
      Src: /src/raksha/src/parser/ir/ir_parser.cc:330,1
    - Dst: RegisterOperator
      Src: /src/raksha/src/parser/ir/ir_parser.cc:331,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:332,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:335,1
    - Dst: GetOperator
      Src: /src/raksha/src/parser/ir/ir_parser.cc:335,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:336,1
    - Dst: number_of_return_values
      Src: /src/raksha/src/parser/ir/ir_parser.cc:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - operator_name
    - num_results
    argTypes:
    - absl::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 342
    functionName: "& MaybeRegisterOperator(absl::string_view operator_name,\n                                        size_t
      num_results)"
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - IsRegisteredOperator
    - GetOperator
    - RegisterOperator
    - std::make_unique<Operator>
    - CHECK
    - number_of_return_values
    linkageType: ''
    returnType: Operator
    signature: "Operator & MaybeRegisterOperator(absl::string_view operator_name,\n
      \                                       size_t num_results)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckAnyCast<Result>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:346,1
    - Dst: Context*::accept
      Src: /src/raksha/src/parser/ir/ir_parser.cc:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - context
    - default_result
    argTypes:
    - Context*
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 348
    functionName: raksha::parser::ir::IrVisitor::VisitContextOrDefaultIfNull
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 1
    functionsReached:
    - CheckAnyCast<Result>
    - Context*::accept
    linkageType: ''
    returnType: Result
    signature: Result VisitContextOrDefaultIfNull(Context* context, Result default_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_cast<Result>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:100,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Any
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: raksha::parser::ir::CheckAnyCast
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - std::any_cast<Result>
    - CHECK
    linkageType: ''
    returnType: Result
    signature: Result & CheckAnyCast(const Any& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<IRContext>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:116,1
    - Dst: std::make_unique<Module>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:117,1
    - Dst: std::make_unique<SsaNames>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: raksha::parser::ir::IrVisitor::IrVisitor
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<IRContext>
    - std::make_unique<SsaNames>
    - std::make_unique<Module>
    linkageType: ''
    returnType: void
    signature: void IrVisitor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IrParser::StringLiteralContext*::stringLiteralContents::getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:123,1
    - Dst: CHECK_GE
      Src: /src/raksha/src/parser/ir/ir_parser.cc:126,1
    - Dst: std::string::size
      Src: /src/raksha/src/parser/ir/ir_parser.cc:126,1
    - Dst: CHECK_EQ
      Src: /src/raksha/src/parser/ir/ir_parser.cc:127,1
    - Dst: std::string::front
      Src: /src/raksha/src/parser/ir/ir_parser.cc:127,1
    - Dst: CHECK_EQ
      Src: /src/raksha/src/parser/ir/ir_parser.cc:128,1
    - Dst: std::string::back
      Src: /src/raksha/src/parser/ir/ir_parser.cc:128,1
    - Dst: IrParser::StringLiteralContext*::stringLiteralContents::getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:129,1
    - Dst: std::string::size
      Src: /src/raksha/src/parser/ir/ir_parser.cc:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - string_context
    argTypes:
    - IrParser::StringLiteralContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 131
    functionName: raksha::parser::ir::IrVisitor::visitStringLiteral
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - CHECK_GE
    - IrParser::StringLiteralContext*::stringLiteralContents::getText
    - std::string::back
    - CHECK_EQ
    - std::string::size
    - std::string::front
    linkageType: ''
    returnType: Any
    signature: "Any visitStringLiteral(\n      IrParser::StringLiteralContext* string_context)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ValueId
      Src: /src/raksha/src/parser/ir/ir_parser.cc:134,1
    - Dst: AnyId
      Src: /src/raksha/src/parser/ir/ir_parser.cc:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - any_context
    argTypes:
    - IrParser::AnyValueContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: raksha::parser::ir::IrVisitor::visitAnyValue
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ValueId
    - AnyId
    linkageType: ''
    returnType: Any
    signature: Any visitAnyValue(IrParser::AnyValueContext* any_context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ValueId
      Src: /src/raksha/src/parser/ir/ir_parser.cc:139,1
    - Dst: IrParser::NamedTempValueContext*::valueName::getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - named_temp_value_context
    argTypes:
    - IrParser::NamedTempValueContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: raksha::parser::ir::IrVisitor::visitNamedTempValue
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ValueId
    - IrParser::NamedTempValueContext*::valueName::getText
    linkageType: ''
    returnType: Any
    signature: "Any visitNamedTempValue(\n      IrParser::NamedTempValueContext* named_temp_value_context)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<ValueId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:144,1
    - Dst: IrParser::ResultContext*::namedTempValue
      Src: /src/raksha/src/parser/ir/ir_parser.cc:145,1
    - Dst: CheckAnyCast<ValueId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:146,1
    - Dst: accept
      Src: /src/raksha/src/parser/ir/ir_parser.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - result_context
    argTypes:
    - IrParser::ResultContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: raksha::parser::ir::IrVisitor::visitResult
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - accept
    - IrParser::ResultContext*::namedTempValue
    - CheckAnyCast<ValueId>
    - utils::MapIter<ValueId>
    linkageType: ''
    returnType: Any
    signature: Any visitResult(IrParser::ResultContext* result_context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<ValueId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:152,1
    - Dst: IrParser::ArgumentListContext*::value
      Src: /src/raksha/src/parser/ir/ir_parser.cc:153,1
    - Dst: CheckAnyCast<ValueId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:154,1
    - Dst: accept
      Src: /src/raksha/src/parser/ir/ir_parser.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - argument_list_context
    argTypes:
    - IrParser::ArgumentListContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: raksha::parser::ir::IrVisitor::visitArgumentList
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - IrParser::ArgumentListContext*::value
    - accept
    - CheckAnyCast<ValueId>
    - utils::MapIter<ValueId>
    linkageType: ''
    returnType: Any
    signature: "Any visitArgumentList(\n      IrParser::ArgumentListContext* argument_list_context)
      override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:162,1
    - Dst: getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:162,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:164,1
    - Dst: std::string::empty
      Src: /src/raksha/src/parser/ir/ir_parser.cc:164,1
    - Dst: std::string::back
      Src: /src/raksha/src/parser/ir/ir_parser.cc:165,1
    - Dst: std::string::substr
      Src: /src/raksha/src/parser/ir/ir_parser.cc:166,1
    - Dst: std::string::size
      Src: /src/raksha/src/parser/ir/ir_parser.cc:166,1
    - Dst: absl::SimpleAtod
      Src: /src/raksha/src/parser/ir/ir_parser.cc:168,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:169,1
    - Dst: Attribute::Create<FloatAttribute>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - float_attribute_context
    argTypes:
    - IrParser::FloatAttributeContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 171
    functionName: raksha::parser::ir::IrVisitor::visitFloatAttribute
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - std::string::back
    - absl::SimpleAtod
    - std::string::substr
    - std::string::size
    - CHECK
    - std::string::empty
    - Attribute::Create<FloatAttribute>
    - getText
    linkageType: ''
    returnType: Any
    signature: "Any visitFloatAttribute(\n      IrParser::FloatAttributeContext* float_attribute_context)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::SimpleAtoi
      Src: /src/raksha/src/parser/ir/ir_parser.cc:176,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:177,1
    - Dst: getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:177,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:179,1
    - Dst: Attribute::Create<Int64Attribute>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - num_attribute_context
    argTypes:
    - IrParser::NumAttributeContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 181
    functionName: raksha::parser::ir::IrVisitor::visitNumAttribute
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - Attribute::Create<Int64Attribute>
    - CHECK
    - getText
    - absl::SimpleAtoi
    linkageType: ''
    returnType: Any
    signature: "Any visitNumAttribute(\n      IrParser::NumAttributeContext* num_attribute_context)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Attribute::Create<StringAttribute>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:185,1
    - Dst: CheckAnyCast<std::string>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:185,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:186,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string_attribute_context
    argTypes:
    - IrParser::StringAttributeContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: raksha::parser::ir::IrVisitor::visitStringAttribute
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - Attribute::Create<StringAttribute>
    - ABSL_DIE_IF_NULL
    - CheckAnyCast<std::string>
    linkageType: ''
    returnType: Any
    signature: "Any visitStringAttribute(\n      IrParser::StringAttributeContext*
      string_attribute_context) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:192,1
    - Dst: std::make_pair
      Src: /src/raksha/src/parser/ir/ir_parser.cc:193,1
    - Dst: IrParser::AttributeContext*::name::getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:194,1
    - Dst: CheckAnyCast<Attribute>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:195,1
    - Dst: IrParser::AttributeContext*::attributePayload
      Src: /src/raksha/src/parser/ir/ir_parser.cc:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - attribute_context
    argTypes:
    - IrParser::AttributeContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 197
    functionName: raksha::parser::ir::IrVisitor::visitAttribute
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - IrParser::AttributeContext*::name::getText
    - std::make_pair
    - IrParser::AttributeContext*::attributePayload
    - CHECK
    - CheckAnyCast<Attribute>
    linkageType: ''
    returnType: Any
    signature: Any visitAttribute(IrParser::AttributeContext* attribute_context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/parser/ir/ir_parser.cc:201,1
    - Dst: IrParser::AttributeListContext*::attribute
      Src: /src/raksha/src/parser/ir/ir_parser.cc:202,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/parser/ir/ir_parser.cc:202,1
    - Dst: CheckAnyCast<std::pair<std::string, Attribute>>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:205,1
    - Dst: accept
      Src: /src/raksha/src/parser/ir/ir_parser.cc:206,1
    - Dst: insert
      Src: /src/raksha/src/parser/ir/ir_parser.cc:207,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - attribute_list_context
    argTypes:
    - IrParser::AttributeListContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 212
    functionName: raksha::parser::ir::IrVisitor::visitAttributeList
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - NamedAttributeMap
    - accept
    - raksha::common::utils::fold
    - IrParser::AttributeListContext*::attribute
    - CHECK
    - CheckAnyCast<std::pair<std::string, Attribute>>
    - insert
    linkageType: ''
    returnType: Any
    signature: "Any visitAttributeList(\n      IrParser::AttributeListContext* attribute_list_context)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckAnyCast<std::vector<ValueId>>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:223,1
    - Dst: IrParser::OperationContext*::result
      Src: /src/raksha/src/parser/ir/ir_parser.cc:224,1
    - Dst: IrParser::OperationContext*::operatorName::getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:225,1
    - Dst: raksha::parser::ir::IrVisitor::VisitContextOrDefaultIfNull
      Src: /src/raksha/src/parser/ir/ir_parser.cc:226,1
    - Dst: IrParser::OperationContext*::attributeList
      Src: /src/raksha/src/parser/ir/ir_parser.cc:227,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/parser/ir/ir_parser.cc:227,1
    - Dst: raksha::parser::ir::IrVisitor::VisitContextOrDefaultIfNull
      Src: /src/raksha/src/parser/ir/ir_parser.cc:228,1
    - Dst: IrParser::OperationContext*::argumentList
      Src: /src/raksha/src/parser/ir/ir_parser.cc:229,1
    - Dst: std::vector<ValueId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - operation_context
    argTypes:
    - IrParser::OperationContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 230
    functionName: raksha::parser::ir::IrVisitor::visitOperation
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - IrParser::OperationContext*::operatorName::getText
    - NamedAttributeMap
    - IrParser::OperationContext*::result
    - IrParser::OperationContext*::attributeList
    - raksha::parser::ir::IrVisitor::VisitContextOrDefaultIfNull
    - std::vector<ValueId>
    - IrParser::OperationContext*::argumentList
    - CheckAnyCast<std::vector<ValueId>>
    linkageType: ''
    returnType: Any
    signature: Any visitOperation(IrParser::OperationContext* operation_context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/raksha/src/parser/ir/ir_parser.cc:246,1
    - Dst: IrParser::BlockContext*::operation
      Src: /src/raksha/src/parser/ir/ir_parser.cc:246,1
    - Dst: IrParser::BlockContext*::operation
      Src: /src/raksha/src/parser/ir/ir_parser.cc:247,1
    - Dst: CheckAnyCast<OperationParts>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:249,1
    - Dst: accept
      Src: /src/raksha/src/parser/ir/ir_parser.cc:249,1
    - Dst: MaybeRegisterOperator
      Src: /src/raksha/src/parser/ir/ir_parser.cc:251,1
    - Dst: OperationParts::op_result_ids::size
      Src: /src/raksha/src/parser/ir/ir_parser.cc:252,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/parser/ir/ir_parser.cc:253,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:254,1
    - Dst: std::move
      Src: /src/raksha/src/parser/ir/ir_parser.cc:255,1
    - Dst: ValueList
      Src: /src/raksha/src/parser/ir/ir_parser.cc:256,1
    - Dst: std::move
      Src: /src/raksha/src/parser/ir/ir_parser.cc:257,1
    - Dst: std::vector::back
      Src: /src/raksha/src/parser/ir/ir_parser.cc:258,1
    - Dst: OperationParts::op_result_ids::size
      Src: /src/raksha/src/parser/ir/ir_parser.cc:259,1
    - Dst: OperationParts::op_result_ids::at
      Src: /src/raksha/src/parser/ir/ir_parser.cc:261,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:263,1
    - Dst: std::get_if<AnyId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:263,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/parser/ir/ir_parser.cc:266,1
    - Dst: std::get<TemporaryId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:267,1
    - Dst: raksha::ir::Value::MakeOperationResultValue
      Src: /src/raksha/src/parser/ir/ir_parser.cc:268,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:269,1
    - Dst: ssa_names::AddID
      Src: /src/raksha/src/parser/ir/ir_parser.cc:278,1
    - Dst: utils::MapIter<Value>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:284,1
    - Dst: std::visit
      Src: /src/raksha/src/parser/ir/ir_parser.cc:286,1
    - Dst: Value
      Src: /src/raksha/src/parser/ir/ir_parser.cc:289,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/parser/ir/ir_parser.cc:289,1
    - Dst: absl::flat_hash_map::find
      Src: /src/raksha/src/parser/ir/ir_parser.cc:293,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:294,1
    - Dst: absl::flat_hash_map::end
      Src: /src/raksha/src/parser/ir/ir_parser.cc:294,1
    - Dst: AddInput
      Src: /src/raksha/src/parser/ir/ir_parser.cc:301,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/parser/ir/ir_parser.cc:303,1
    - Dst: std::move
      Src: /src/raksha/src/parser/ir/ir_parser.cc:303,1
    - Dst: module::AddBlock
      Src: /src/raksha/src/parser/ir/ir_parser.cc:305,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/parser/ir/ir_parser.cc:305,1
    - Dst: Unit
      Src: /src/raksha/src/parser/ir/ir_parser.cc:306,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - block_context
    argTypes:
    - IrParser::BlockContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 307
    functionName: raksha::parser::ir::IrVisitor::visitBlock
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::vector::back
    - MaybeRegisterOperator
    - std::move
    - std::get_if<AnyId>
    - module::AddBlock
    - absl::flat_hash_map::end
    - std::get<TemporaryId>
    - ValueList
    - std::make_unique<Operation>
    - absl::flat_hash_map::find
    - ssa_names::AddID
    - IrParser::BlockContext*::operation
    - OperationParts::op_result_ids::size
    - raksha::ir::Value::MakeOperationResultValue
    - std::visit
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - Unit
    - Value
    - accept
    - absl::flat_hash_map::insert
    - CheckAnyCast<OperationParts>
    - AddInput
    - std::vector::reserve
    - BlockBuilder::build
    - CHECK
    - utils::MapIter<Value>
    - BlockBuilder::AddOperation
    - OperationParts::op_result_ids::at
    linkageType: ''
    returnType: Any
    signature: Any visitBlock(IrParser::BlockContext* block_context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IrParser::ModuleContext*::block
      Src: /src/raksha/src/parser/ir/ir_parser.cc:310,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:311,1
    - Dst: Unit
      Src: /src/raksha/src/parser/ir/ir_parser.cc:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - context
    argTypes:
    - IrParser::ModuleContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: raksha::parser::ir::IrVisitor::visitModule
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - IrParser::ModuleContext*::block
    - Unit
    linkageType: ''
    returnType: Any
    signature: Any visitModule(IrParser::ModuleContext* context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IrParser::IrProgramContext*::module
      Src: /src/raksha/src/parser/ir/ir_parser.cc:317,1
    - Dst: Unit
      Src: /src/raksha/src/parser/ir/ir_parser.cc:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - IrParser::IrProgramContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: raksha::parser::ir::IrVisitor::visitIrProgram
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - Unit
    - IrParser::IrProgramContext*::module
    linkageType: ''
    returnType: Any
    signature: Any visitIrProgram(IrParser::IrProgramContext* context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/parser/ir/ir_parser.cc:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 321
    functionName: raksha::parser::ir::IrVisitor::TakeResult
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: IrProgramParserResult
    signature: IrProgramParserResult TakeResult()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsRegisteredOperator
      Src: /src/raksha/src/parser/ir/ir_parser.cc:330,1
    - Dst: RegisterOperator
      Src: /src/raksha/src/parser/ir/ir_parser.cc:331,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:332,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:335,1
    - Dst: GetOperator
      Src: /src/raksha/src/parser/ir/ir_parser.cc:335,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:336,1
    - Dst: number_of_return_values
      Src: /src/raksha/src/parser/ir/ir_parser.cc:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - operator_name
    - num_results
    argTypes:
    - absl::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 342
    functionName: "& MaybeRegisterOperator(absl::string_view operator_name,\n                                        size_t
      num_results)"
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - IsRegisteredOperator
    - GetOperator
    - RegisterOperator
    - std::make_unique<Operator>
    - CHECK
    - number_of_return_values
    linkageType: ''
    returnType: Operator
    signature: "Operator & MaybeRegisterOperator(absl::string_view operator_name,\n
      \                                       size_t num_results)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckAnyCast<Result>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:346,1
    - Dst: Context*::accept
      Src: /src/raksha/src/parser/ir/ir_parser.cc:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - context
    - default_result
    argTypes:
    - Context*
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 348
    functionName: raksha::parser::ir::IrVisitor::VisitContextOrDefaultIfNull
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 2
    functionsReached:
    - CheckAnyCast<Result>
    - Context*::accept
    linkageType: ''
    returnType: Result
    signature: Result VisitContextOrDefaultIfNull(Context* context, Result default_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:367,1
    - Dst: IrParser::irProgram
      Src: /src/raksha/src/parser/ir/ir_parser.cc:367,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:369,1
    - Dst: IrParser::getNumberOfSyntaxErrors
      Src: /src/raksha/src/parser/ir/ir_parser.cc:369,1
    - Dst: IrVisitor::visitIrProgram
      Src: /src/raksha/src/parser/ir/ir_parser.cc:373,1
    - Dst: IrVisitor::TakeResult
      Src: /src/raksha/src/parser/ir/ir_parser.cc:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - prog_text
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 376
    functionName: raksha::parser::ir::ParseProgram
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 8
    functionsReached:
    - ABSL_DIE_IF_NULL
    - IrVisitor::visitIrProgram
    - IrParser::irProgram
    - CHECK
    - IrParser::getNumberOfSyntaxErrors
    - IrVisitor::TakeResult
    linkageType: ''
    returnType: IrProgramParserResult
    signature: IrProgramParserResult ParseProgram(absl::string_view prog_text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_cast<Result>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:100,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Any
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: raksha::parser::ir::CheckAnyCast
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - std::any_cast<Result>
    - CHECK
    linkageType: ''
    returnType: Result
    signature: Result & CheckAnyCast(const Any& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<IRContext>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:116,1
    - Dst: std::make_unique<Module>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:117,1
    - Dst: std::make_unique<SsaNames>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: raksha::parser::ir::IrVisitor::IrVisitor
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<IRContext>
    - std::make_unique<SsaNames>
    - std::make_unique<Module>
    linkageType: ''
    returnType: void
    signature: void IrVisitor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IrParser::StringLiteralContext*::stringLiteralContents::getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:123,1
    - Dst: CHECK_GE
      Src: /src/raksha/src/parser/ir/ir_parser.cc:126,1
    - Dst: std::string::size
      Src: /src/raksha/src/parser/ir/ir_parser.cc:126,1
    - Dst: CHECK_EQ
      Src: /src/raksha/src/parser/ir/ir_parser.cc:127,1
    - Dst: std::string::front
      Src: /src/raksha/src/parser/ir/ir_parser.cc:127,1
    - Dst: CHECK_EQ
      Src: /src/raksha/src/parser/ir/ir_parser.cc:128,1
    - Dst: std::string::back
      Src: /src/raksha/src/parser/ir/ir_parser.cc:128,1
    - Dst: IrParser::StringLiteralContext*::stringLiteralContents::getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:129,1
    - Dst: std::string::size
      Src: /src/raksha/src/parser/ir/ir_parser.cc:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - string_context
    argTypes:
    - IrParser::StringLiteralContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 131
    functionName: raksha::parser::ir::IrVisitor::visitStringLiteral
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - CHECK_GE
    - IrParser::StringLiteralContext*::stringLiteralContents::getText
    - std::string::back
    - CHECK_EQ
    - std::string::size
    - std::string::front
    linkageType: ''
    returnType: Any
    signature: "Any visitStringLiteral(\n      IrParser::StringLiteralContext* string_context)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ValueId
      Src: /src/raksha/src/parser/ir/ir_parser.cc:134,1
    - Dst: AnyId
      Src: /src/raksha/src/parser/ir/ir_parser.cc:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - any_context
    argTypes:
    - IrParser::AnyValueContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: raksha::parser::ir::IrVisitor::visitAnyValue
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ValueId
    - AnyId
    linkageType: ''
    returnType: Any
    signature: Any visitAnyValue(IrParser::AnyValueContext* any_context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ValueId
      Src: /src/raksha/src/parser/ir/ir_parser.cc:139,1
    - Dst: IrParser::NamedTempValueContext*::valueName::getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - named_temp_value_context
    argTypes:
    - IrParser::NamedTempValueContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: raksha::parser::ir::IrVisitor::visitNamedTempValue
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ValueId
    - IrParser::NamedTempValueContext*::valueName::getText
    linkageType: ''
    returnType: Any
    signature: "Any visitNamedTempValue(\n      IrParser::NamedTempValueContext* named_temp_value_context)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<ValueId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:144,1
    - Dst: IrParser::ResultContext*::namedTempValue
      Src: /src/raksha/src/parser/ir/ir_parser.cc:145,1
    - Dst: CheckAnyCast<ValueId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:146,1
    - Dst: accept
      Src: /src/raksha/src/parser/ir/ir_parser.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - result_context
    argTypes:
    - IrParser::ResultContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: raksha::parser::ir::IrVisitor::visitResult
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - accept
    - IrParser::ResultContext*::namedTempValue
    - CheckAnyCast<ValueId>
    - utils::MapIter<ValueId>
    linkageType: ''
    returnType: Any
    signature: Any visitResult(IrParser::ResultContext* result_context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<ValueId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:152,1
    - Dst: IrParser::ArgumentListContext*::value
      Src: /src/raksha/src/parser/ir/ir_parser.cc:153,1
    - Dst: CheckAnyCast<ValueId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:154,1
    - Dst: accept
      Src: /src/raksha/src/parser/ir/ir_parser.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - argument_list_context
    argTypes:
    - IrParser::ArgumentListContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: raksha::parser::ir::IrVisitor::visitArgumentList
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - IrParser::ArgumentListContext*::value
    - accept
    - CheckAnyCast<ValueId>
    - utils::MapIter<ValueId>
    linkageType: ''
    returnType: Any
    signature: "Any visitArgumentList(\n      IrParser::ArgumentListContext* argument_list_context)
      override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:162,1
    - Dst: getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:162,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:164,1
    - Dst: std::string::empty
      Src: /src/raksha/src/parser/ir/ir_parser.cc:164,1
    - Dst: std::string::back
      Src: /src/raksha/src/parser/ir/ir_parser.cc:165,1
    - Dst: std::string::substr
      Src: /src/raksha/src/parser/ir/ir_parser.cc:166,1
    - Dst: std::string::size
      Src: /src/raksha/src/parser/ir/ir_parser.cc:166,1
    - Dst: absl::SimpleAtod
      Src: /src/raksha/src/parser/ir/ir_parser.cc:168,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:169,1
    - Dst: Attribute::Create<FloatAttribute>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - float_attribute_context
    argTypes:
    - IrParser::FloatAttributeContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 171
    functionName: raksha::parser::ir::IrVisitor::visitFloatAttribute
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - std::string::back
    - absl::SimpleAtod
    - std::string::substr
    - std::string::size
    - CHECK
    - std::string::empty
    - Attribute::Create<FloatAttribute>
    - getText
    linkageType: ''
    returnType: Any
    signature: "Any visitFloatAttribute(\n      IrParser::FloatAttributeContext* float_attribute_context)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::SimpleAtoi
      Src: /src/raksha/src/parser/ir/ir_parser.cc:176,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:177,1
    - Dst: getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:177,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:179,1
    - Dst: Attribute::Create<Int64Attribute>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - num_attribute_context
    argTypes:
    - IrParser::NumAttributeContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 181
    functionName: raksha::parser::ir::IrVisitor::visitNumAttribute
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - Attribute::Create<Int64Attribute>
    - CHECK
    - getText
    - absl::SimpleAtoi
    linkageType: ''
    returnType: Any
    signature: "Any visitNumAttribute(\n      IrParser::NumAttributeContext* num_attribute_context)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Attribute::Create<StringAttribute>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:185,1
    - Dst: CheckAnyCast<std::string>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:185,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:186,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string_attribute_context
    argTypes:
    - IrParser::StringAttributeContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: raksha::parser::ir::IrVisitor::visitStringAttribute
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - Attribute::Create<StringAttribute>
    - ABSL_DIE_IF_NULL
    - CheckAnyCast<std::string>
    linkageType: ''
    returnType: Any
    signature: "Any visitStringAttribute(\n      IrParser::StringAttributeContext*
      string_attribute_context) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:192,1
    - Dst: std::make_pair
      Src: /src/raksha/src/parser/ir/ir_parser.cc:193,1
    - Dst: IrParser::AttributeContext*::name::getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:194,1
    - Dst: CheckAnyCast<Attribute>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:195,1
    - Dst: IrParser::AttributeContext*::attributePayload
      Src: /src/raksha/src/parser/ir/ir_parser.cc:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - attribute_context
    argTypes:
    - IrParser::AttributeContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 197
    functionName: raksha::parser::ir::IrVisitor::visitAttribute
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - IrParser::AttributeContext*::name::getText
    - std::make_pair
    - IrParser::AttributeContext*::attributePayload
    - CHECK
    - CheckAnyCast<Attribute>
    linkageType: ''
    returnType: Any
    signature: Any visitAttribute(IrParser::AttributeContext* attribute_context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/parser/ir/ir_parser.cc:201,1
    - Dst: IrParser::AttributeListContext*::attribute
      Src: /src/raksha/src/parser/ir/ir_parser.cc:202,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/parser/ir/ir_parser.cc:202,1
    - Dst: CheckAnyCast<std::pair<std::string, Attribute>>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:205,1
    - Dst: accept
      Src: /src/raksha/src/parser/ir/ir_parser.cc:206,1
    - Dst: insert
      Src: /src/raksha/src/parser/ir/ir_parser.cc:207,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - attribute_list_context
    argTypes:
    - IrParser::AttributeListContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 212
    functionName: raksha::parser::ir::IrVisitor::visitAttributeList
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - NamedAttributeMap
    - accept
    - raksha::common::utils::fold
    - IrParser::AttributeListContext*::attribute
    - CHECK
    - CheckAnyCast<std::pair<std::string, Attribute>>
    - insert
    linkageType: ''
    returnType: Any
    signature: "Any visitAttributeList(\n      IrParser::AttributeListContext* attribute_list_context)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckAnyCast<std::vector<ValueId>>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:223,1
    - Dst: IrParser::OperationContext*::result
      Src: /src/raksha/src/parser/ir/ir_parser.cc:224,1
    - Dst: IrParser::OperationContext*::operatorName::getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:225,1
    - Dst: raksha::parser::ir::IrVisitor::VisitContextOrDefaultIfNull
      Src: /src/raksha/src/parser/ir/ir_parser.cc:226,1
    - Dst: IrParser::OperationContext*::attributeList
      Src: /src/raksha/src/parser/ir/ir_parser.cc:227,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/parser/ir/ir_parser.cc:227,1
    - Dst: raksha::parser::ir::IrVisitor::VisitContextOrDefaultIfNull
      Src: /src/raksha/src/parser/ir/ir_parser.cc:228,1
    - Dst: IrParser::OperationContext*::argumentList
      Src: /src/raksha/src/parser/ir/ir_parser.cc:229,1
    - Dst: std::vector<ValueId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - operation_context
    argTypes:
    - IrParser::OperationContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 230
    functionName: raksha::parser::ir::IrVisitor::visitOperation
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - IrParser::OperationContext*::operatorName::getText
    - NamedAttributeMap
    - IrParser::OperationContext*::result
    - IrParser::OperationContext*::attributeList
    - raksha::parser::ir::IrVisitor::VisitContextOrDefaultIfNull
    - std::vector<ValueId>
    - IrParser::OperationContext*::argumentList
    - CheckAnyCast<std::vector<ValueId>>
    linkageType: ''
    returnType: Any
    signature: Any visitOperation(IrParser::OperationContext* operation_context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/raksha/src/parser/ir/ir_parser.cc:246,1
    - Dst: IrParser::BlockContext*::operation
      Src: /src/raksha/src/parser/ir/ir_parser.cc:246,1
    - Dst: IrParser::BlockContext*::operation
      Src: /src/raksha/src/parser/ir/ir_parser.cc:247,1
    - Dst: CheckAnyCast<OperationParts>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:249,1
    - Dst: accept
      Src: /src/raksha/src/parser/ir/ir_parser.cc:249,1
    - Dst: MaybeRegisterOperator
      Src: /src/raksha/src/parser/ir/ir_parser.cc:251,1
    - Dst: OperationParts::op_result_ids::size
      Src: /src/raksha/src/parser/ir/ir_parser.cc:252,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/parser/ir/ir_parser.cc:253,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:254,1
    - Dst: std::move
      Src: /src/raksha/src/parser/ir/ir_parser.cc:255,1
    - Dst: ValueList
      Src: /src/raksha/src/parser/ir/ir_parser.cc:256,1
    - Dst: std::move
      Src: /src/raksha/src/parser/ir/ir_parser.cc:257,1
    - Dst: std::vector::back
      Src: /src/raksha/src/parser/ir/ir_parser.cc:258,1
    - Dst: OperationParts::op_result_ids::size
      Src: /src/raksha/src/parser/ir/ir_parser.cc:259,1
    - Dst: OperationParts::op_result_ids::at
      Src: /src/raksha/src/parser/ir/ir_parser.cc:261,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:263,1
    - Dst: std::get_if<AnyId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:263,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/parser/ir/ir_parser.cc:266,1
    - Dst: std::get<TemporaryId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:267,1
    - Dst: raksha::ir::Value::MakeOperationResultValue
      Src: /src/raksha/src/parser/ir/ir_parser.cc:268,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:269,1
    - Dst: ssa_names::AddID
      Src: /src/raksha/src/parser/ir/ir_parser.cc:278,1
    - Dst: utils::MapIter<Value>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:284,1
    - Dst: std::visit
      Src: /src/raksha/src/parser/ir/ir_parser.cc:286,1
    - Dst: Value
      Src: /src/raksha/src/parser/ir/ir_parser.cc:289,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/parser/ir/ir_parser.cc:289,1
    - Dst: absl::flat_hash_map::find
      Src: /src/raksha/src/parser/ir/ir_parser.cc:293,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:294,1
    - Dst: absl::flat_hash_map::end
      Src: /src/raksha/src/parser/ir/ir_parser.cc:294,1
    - Dst: AddInput
      Src: /src/raksha/src/parser/ir/ir_parser.cc:301,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/parser/ir/ir_parser.cc:303,1
    - Dst: std::move
      Src: /src/raksha/src/parser/ir/ir_parser.cc:303,1
    - Dst: module::AddBlock
      Src: /src/raksha/src/parser/ir/ir_parser.cc:305,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/parser/ir/ir_parser.cc:305,1
    - Dst: Unit
      Src: /src/raksha/src/parser/ir/ir_parser.cc:306,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - block_context
    argTypes:
    - IrParser::BlockContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 307
    functionName: raksha::parser::ir::IrVisitor::visitBlock
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::vector::back
    - MaybeRegisterOperator
    - std::move
    - std::get_if<AnyId>
    - module::AddBlock
    - absl::flat_hash_map::end
    - std::get<TemporaryId>
    - ValueList
    - std::make_unique<Operation>
    - absl::flat_hash_map::find
    - ssa_names::AddID
    - IrParser::BlockContext*::operation
    - OperationParts::op_result_ids::size
    - raksha::ir::Value::MakeOperationResultValue
    - std::visit
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - Unit
    - Value
    - accept
    - absl::flat_hash_map::insert
    - CheckAnyCast<OperationParts>
    - AddInput
    - std::vector::reserve
    - BlockBuilder::build
    - CHECK
    - utils::MapIter<Value>
    - BlockBuilder::AddOperation
    - OperationParts::op_result_ids::at
    linkageType: ''
    returnType: Any
    signature: Any visitBlock(IrParser::BlockContext* block_context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IrParser::ModuleContext*::block
      Src: /src/raksha/src/parser/ir/ir_parser.cc:310,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:311,1
    - Dst: Unit
      Src: /src/raksha/src/parser/ir/ir_parser.cc:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - context
    argTypes:
    - IrParser::ModuleContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: raksha::parser::ir::IrVisitor::visitModule
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - IrParser::ModuleContext*::block
    - Unit
    linkageType: ''
    returnType: Any
    signature: Any visitModule(IrParser::ModuleContext* context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IrParser::IrProgramContext*::module
      Src: /src/raksha/src/parser/ir/ir_parser.cc:317,1
    - Dst: Unit
      Src: /src/raksha/src/parser/ir/ir_parser.cc:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - IrParser::IrProgramContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: raksha::parser::ir::IrVisitor::visitIrProgram
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - Unit
    - IrParser::IrProgramContext*::module
    linkageType: ''
    returnType: Any
    signature: Any visitIrProgram(IrParser::IrProgramContext* context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/parser/ir/ir_parser.cc:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 321
    functionName: raksha::parser::ir::IrVisitor::TakeResult
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: IrProgramParserResult
    signature: IrProgramParserResult TakeResult()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsRegisteredOperator
      Src: /src/raksha/src/parser/ir/ir_parser.cc:330,1
    - Dst: RegisterOperator
      Src: /src/raksha/src/parser/ir/ir_parser.cc:331,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:332,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:335,1
    - Dst: GetOperator
      Src: /src/raksha/src/parser/ir/ir_parser.cc:335,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:336,1
    - Dst: number_of_return_values
      Src: /src/raksha/src/parser/ir/ir_parser.cc:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - operator_name
    - num_results
    argTypes:
    - absl::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 342
    functionName: "& MaybeRegisterOperator(absl::string_view operator_name,\n                                        size_t
      num_results)"
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - IsRegisteredOperator
    - GetOperator
    - RegisterOperator
    - std::make_unique<Operator>
    - CHECK
    - number_of_return_values
    linkageType: ''
    returnType: Operator
    signature: "Operator & MaybeRegisterOperator(absl::string_view operator_name,\n
      \                                       size_t num_results)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckAnyCast<Result>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:346,1
    - Dst: Context*::accept
      Src: /src/raksha/src/parser/ir/ir_parser.cc:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - context
    - default_result
    argTypes:
    - Context*
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 348
    functionName: raksha::parser::ir::IrVisitor::VisitContextOrDefaultIfNull
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 3
    functionsReached:
    - CheckAnyCast<Result>
    - Context*::accept
    linkageType: ''
    returnType: Result
    signature: Result VisitContextOrDefaultIfNull(Context* context, Result default_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::any_cast<Result>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:100,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Any
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: raksha::parser::ir::CheckAnyCast
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - std::any_cast<Result>
    - CHECK
    linkageType: ''
    returnType: Result
    signature: Result & CheckAnyCast(const Any& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<IRContext>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:116,1
    - Dst: std::make_unique<Module>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:117,1
    - Dst: std::make_unique<SsaNames>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: raksha::parser::ir::IrVisitor::IrVisitor
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<IRContext>
    - std::make_unique<SsaNames>
    - std::make_unique<Module>
    linkageType: ''
    returnType: void
    signature: void IrVisitor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IrParser::StringLiteralContext*::stringLiteralContents::getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:123,1
    - Dst: CHECK_GE
      Src: /src/raksha/src/parser/ir/ir_parser.cc:126,1
    - Dst: std::string::size
      Src: /src/raksha/src/parser/ir/ir_parser.cc:126,1
    - Dst: CHECK_EQ
      Src: /src/raksha/src/parser/ir/ir_parser.cc:127,1
    - Dst: std::string::front
      Src: /src/raksha/src/parser/ir/ir_parser.cc:127,1
    - Dst: CHECK_EQ
      Src: /src/raksha/src/parser/ir/ir_parser.cc:128,1
    - Dst: std::string::back
      Src: /src/raksha/src/parser/ir/ir_parser.cc:128,1
    - Dst: IrParser::StringLiteralContext*::stringLiteralContents::getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:129,1
    - Dst: std::string::size
      Src: /src/raksha/src/parser/ir/ir_parser.cc:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - string_context
    argTypes:
    - IrParser::StringLiteralContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 131
    functionName: raksha::parser::ir::IrVisitor::visitStringLiteral
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - CHECK_GE
    - IrParser::StringLiteralContext*::stringLiteralContents::getText
    - std::string::back
    - CHECK_EQ
    - std::string::size
    - std::string::front
    linkageType: ''
    returnType: Any
    signature: "Any visitStringLiteral(\n      IrParser::StringLiteralContext* string_context)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ValueId
      Src: /src/raksha/src/parser/ir/ir_parser.cc:134,1
    - Dst: AnyId
      Src: /src/raksha/src/parser/ir/ir_parser.cc:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - any_context
    argTypes:
    - IrParser::AnyValueContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: raksha::parser::ir::IrVisitor::visitAnyValue
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ValueId
    - AnyId
    linkageType: ''
    returnType: Any
    signature: Any visitAnyValue(IrParser::AnyValueContext* any_context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ValueId
      Src: /src/raksha/src/parser/ir/ir_parser.cc:139,1
    - Dst: IrParser::NamedTempValueContext*::valueName::getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - named_temp_value_context
    argTypes:
    - IrParser::NamedTempValueContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: raksha::parser::ir::IrVisitor::visitNamedTempValue
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ValueId
    - IrParser::NamedTempValueContext*::valueName::getText
    linkageType: ''
    returnType: Any
    signature: "Any visitNamedTempValue(\n      IrParser::NamedTempValueContext* named_temp_value_context)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<ValueId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:144,1
    - Dst: IrParser::ResultContext*::namedTempValue
      Src: /src/raksha/src/parser/ir/ir_parser.cc:145,1
    - Dst: CheckAnyCast<ValueId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:146,1
    - Dst: accept
      Src: /src/raksha/src/parser/ir/ir_parser.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - result_context
    argTypes:
    - IrParser::ResultContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: raksha::parser::ir::IrVisitor::visitResult
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - accept
    - IrParser::ResultContext*::namedTempValue
    - CheckAnyCast<ValueId>
    - utils::MapIter<ValueId>
    linkageType: ''
    returnType: Any
    signature: Any visitResult(IrParser::ResultContext* result_context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utils::MapIter<ValueId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:152,1
    - Dst: IrParser::ArgumentListContext*::value
      Src: /src/raksha/src/parser/ir/ir_parser.cc:153,1
    - Dst: CheckAnyCast<ValueId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:154,1
    - Dst: accept
      Src: /src/raksha/src/parser/ir/ir_parser.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - argument_list_context
    argTypes:
    - IrParser::ArgumentListContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: raksha::parser::ir::IrVisitor::visitArgumentList
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - IrParser::ArgumentListContext*::value
    - accept
    - CheckAnyCast<ValueId>
    - utils::MapIter<ValueId>
    linkageType: ''
    returnType: Any
    signature: "Any visitArgumentList(\n      IrParser::ArgumentListContext* argument_list_context)
      override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:162,1
    - Dst: getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:162,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:164,1
    - Dst: std::string::empty
      Src: /src/raksha/src/parser/ir/ir_parser.cc:164,1
    - Dst: std::string::back
      Src: /src/raksha/src/parser/ir/ir_parser.cc:165,1
    - Dst: std::string::substr
      Src: /src/raksha/src/parser/ir/ir_parser.cc:166,1
    - Dst: std::string::size
      Src: /src/raksha/src/parser/ir/ir_parser.cc:166,1
    - Dst: absl::SimpleAtod
      Src: /src/raksha/src/parser/ir/ir_parser.cc:168,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:169,1
    - Dst: Attribute::Create<FloatAttribute>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - float_attribute_context
    argTypes:
    - IrParser::FloatAttributeContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 171
    functionName: raksha::parser::ir::IrVisitor::visitFloatAttribute
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - std::string::back
    - absl::SimpleAtod
    - std::string::substr
    - std::string::size
    - CHECK
    - std::string::empty
    - Attribute::Create<FloatAttribute>
    - getText
    linkageType: ''
    returnType: Any
    signature: "Any visitFloatAttribute(\n      IrParser::FloatAttributeContext* float_attribute_context)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::SimpleAtoi
      Src: /src/raksha/src/parser/ir/ir_parser.cc:176,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:177,1
    - Dst: getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:177,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:179,1
    - Dst: Attribute::Create<Int64Attribute>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - num_attribute_context
    argTypes:
    - IrParser::NumAttributeContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 181
    functionName: raksha::parser::ir::IrVisitor::visitNumAttribute
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - Attribute::Create<Int64Attribute>
    - CHECK
    - getText
    - absl::SimpleAtoi
    linkageType: ''
    returnType: Any
    signature: "Any visitNumAttribute(\n      IrParser::NumAttributeContext* num_attribute_context)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Attribute::Create<StringAttribute>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:185,1
    - Dst: CheckAnyCast<std::string>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:185,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:186,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string_attribute_context
    argTypes:
    - IrParser::StringAttributeContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: raksha::parser::ir::IrVisitor::visitStringAttribute
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - Attribute::Create<StringAttribute>
    - ABSL_DIE_IF_NULL
    - CheckAnyCast<std::string>
    linkageType: ''
    returnType: Any
    signature: "Any visitStringAttribute(\n      IrParser::StringAttributeContext*
      string_attribute_context) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:192,1
    - Dst: std::make_pair
      Src: /src/raksha/src/parser/ir/ir_parser.cc:193,1
    - Dst: IrParser::AttributeContext*::name::getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:194,1
    - Dst: CheckAnyCast<Attribute>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:195,1
    - Dst: IrParser::AttributeContext*::attributePayload
      Src: /src/raksha/src/parser/ir/ir_parser.cc:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - attribute_context
    argTypes:
    - IrParser::AttributeContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 197
    functionName: raksha::parser::ir::IrVisitor::visitAttribute
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - IrParser::AttributeContext*::name::getText
    - std::make_pair
    - IrParser::AttributeContext*::attributePayload
    - CHECK
    - CheckAnyCast<Attribute>
    linkageType: ''
    returnType: Any
    signature: Any visitAttribute(IrParser::AttributeContext* attribute_context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::common::utils::fold
      Src: /src/raksha/src/parser/ir/ir_parser.cc:201,1
    - Dst: IrParser::AttributeListContext*::attribute
      Src: /src/raksha/src/parser/ir/ir_parser.cc:202,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/parser/ir/ir_parser.cc:202,1
    - Dst: CheckAnyCast<std::pair<std::string, Attribute>>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:205,1
    - Dst: accept
      Src: /src/raksha/src/parser/ir/ir_parser.cc:206,1
    - Dst: insert
      Src: /src/raksha/src/parser/ir/ir_parser.cc:207,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - attribute_list_context
    argTypes:
    - IrParser::AttributeListContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 212
    functionName: raksha::parser::ir::IrVisitor::visitAttributeList
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - NamedAttributeMap
    - accept
    - raksha::common::utils::fold
    - IrParser::AttributeListContext*::attribute
    - CHECK
    - CheckAnyCast<std::pair<std::string, Attribute>>
    - insert
    linkageType: ''
    returnType: Any
    signature: "Any visitAttributeList(\n      IrParser::AttributeListContext* attribute_list_context)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckAnyCast<std::vector<ValueId>>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:223,1
    - Dst: IrParser::OperationContext*::result
      Src: /src/raksha/src/parser/ir/ir_parser.cc:224,1
    - Dst: IrParser::OperationContext*::operatorName::getText
      Src: /src/raksha/src/parser/ir/ir_parser.cc:225,1
    - Dst: raksha::parser::ir::IrVisitor::VisitContextOrDefaultIfNull
      Src: /src/raksha/src/parser/ir/ir_parser.cc:226,1
    - Dst: IrParser::OperationContext*::attributeList
      Src: /src/raksha/src/parser/ir/ir_parser.cc:227,1
    - Dst: NamedAttributeMap
      Src: /src/raksha/src/parser/ir/ir_parser.cc:227,1
    - Dst: raksha::parser::ir::IrVisitor::VisitContextOrDefaultIfNull
      Src: /src/raksha/src/parser/ir/ir_parser.cc:228,1
    - Dst: IrParser::OperationContext*::argumentList
      Src: /src/raksha/src/parser/ir/ir_parser.cc:229,1
    - Dst: std::vector<ValueId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - operation_context
    argTypes:
    - IrParser::OperationContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 230
    functionName: raksha::parser::ir::IrVisitor::visitOperation
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - IrParser::OperationContext*::operatorName::getText
    - NamedAttributeMap
    - IrParser::OperationContext*::result
    - IrParser::OperationContext*::attributeList
    - raksha::parser::ir::IrVisitor::VisitContextOrDefaultIfNull
    - std::vector<ValueId>
    - IrParser::OperationContext*::argumentList
    - CheckAnyCast<std::vector<ValueId>>
    linkageType: ''
    returnType: Any
    signature: Any visitOperation(IrParser::OperationContext* operation_context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/raksha/src/parser/ir/ir_parser.cc:246,1
    - Dst: IrParser::BlockContext*::operation
      Src: /src/raksha/src/parser/ir/ir_parser.cc:246,1
    - Dst: IrParser::BlockContext*::operation
      Src: /src/raksha/src/parser/ir/ir_parser.cc:247,1
    - Dst: CheckAnyCast<OperationParts>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:249,1
    - Dst: accept
      Src: /src/raksha/src/parser/ir/ir_parser.cc:249,1
    - Dst: MaybeRegisterOperator
      Src: /src/raksha/src/parser/ir/ir_parser.cc:251,1
    - Dst: OperationParts::op_result_ids::size
      Src: /src/raksha/src/parser/ir/ir_parser.cc:252,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/parser/ir/ir_parser.cc:253,1
    - Dst: std::make_unique<Operation>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:254,1
    - Dst: std::move
      Src: /src/raksha/src/parser/ir/ir_parser.cc:255,1
    - Dst: ValueList
      Src: /src/raksha/src/parser/ir/ir_parser.cc:256,1
    - Dst: std::move
      Src: /src/raksha/src/parser/ir/ir_parser.cc:257,1
    - Dst: std::vector::back
      Src: /src/raksha/src/parser/ir/ir_parser.cc:258,1
    - Dst: OperationParts::op_result_ids::size
      Src: /src/raksha/src/parser/ir/ir_parser.cc:259,1
    - Dst: OperationParts::op_result_ids::at
      Src: /src/raksha/src/parser/ir/ir_parser.cc:261,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:263,1
    - Dst: std::get_if<AnyId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:263,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/parser/ir/ir_parser.cc:266,1
    - Dst: std::get<TemporaryId>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:267,1
    - Dst: raksha::ir::Value::MakeOperationResultValue
      Src: /src/raksha/src/parser/ir/ir_parser.cc:268,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:269,1
    - Dst: ssa_names::AddID
      Src: /src/raksha/src/parser/ir/ir_parser.cc:278,1
    - Dst: utils::MapIter<Value>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:284,1
    - Dst: std::visit
      Src: /src/raksha/src/parser/ir/ir_parser.cc:286,1
    - Dst: Value
      Src: /src/raksha/src/parser/ir/ir_parser.cc:289,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/parser/ir/ir_parser.cc:289,1
    - Dst: absl::flat_hash_map::find
      Src: /src/raksha/src/parser/ir/ir_parser.cc:293,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:294,1
    - Dst: absl::flat_hash_map::end
      Src: /src/raksha/src/parser/ir/ir_parser.cc:294,1
    - Dst: AddInput
      Src: /src/raksha/src/parser/ir/ir_parser.cc:301,1
    - Dst: BlockBuilder::AddOperation
      Src: /src/raksha/src/parser/ir/ir_parser.cc:303,1
    - Dst: std::move
      Src: /src/raksha/src/parser/ir/ir_parser.cc:303,1
    - Dst: module::AddBlock
      Src: /src/raksha/src/parser/ir/ir_parser.cc:305,1
    - Dst: BlockBuilder::build
      Src: /src/raksha/src/parser/ir/ir_parser.cc:305,1
    - Dst: Unit
      Src: /src/raksha/src/parser/ir/ir_parser.cc:306,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - block_context
    argTypes:
    - IrParser::BlockContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 307
    functionName: raksha::parser::ir::IrVisitor::visitBlock
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::vector::back
    - MaybeRegisterOperator
    - std::move
    - std::get_if<AnyId>
    - module::AddBlock
    - absl::flat_hash_map::end
    - std::get<TemporaryId>
    - ValueList
    - std::make_unique<Operation>
    - absl::flat_hash_map::find
    - ssa_names::AddID
    - IrParser::BlockContext*::operation
    - OperationParts::op_result_ids::size
    - raksha::ir::Value::MakeOperationResultValue
    - std::visit
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - Unit
    - Value
    - accept
    - absl::flat_hash_map::insert
    - CheckAnyCast<OperationParts>
    - AddInput
    - std::vector::reserve
    - BlockBuilder::build
    - CHECK
    - utils::MapIter<Value>
    - BlockBuilder::AddOperation
    - OperationParts::op_result_ids::at
    linkageType: ''
    returnType: Any
    signature: Any visitBlock(IrParser::BlockContext* block_context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IrParser::ModuleContext*::block
      Src: /src/raksha/src/parser/ir/ir_parser.cc:310,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:311,1
    - Dst: Unit
      Src: /src/raksha/src/parser/ir/ir_parser.cc:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - context
    argTypes:
    - IrParser::ModuleContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: raksha::parser::ir::IrVisitor::visitModule
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - IrParser::ModuleContext*::block
    - Unit
    linkageType: ''
    returnType: Any
    signature: Any visitModule(IrParser::ModuleContext* context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IrParser::IrProgramContext*::module
      Src: /src/raksha/src/parser/ir/ir_parser.cc:317,1
    - Dst: Unit
      Src: /src/raksha/src/parser/ir/ir_parser.cc:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - IrParser::IrProgramContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: raksha::parser::ir::IrVisitor::visitIrProgram
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - Unit
    - IrParser::IrProgramContext*::module
    linkageType: ''
    returnType: Any
    signature: Any visitIrProgram(IrParser::IrProgramContext* context) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/parser/ir/ir_parser.cc:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 321
    functionName: raksha::parser::ir::IrVisitor::TakeResult
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: IrProgramParserResult
    signature: IrProgramParserResult TakeResult()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsRegisteredOperator
      Src: /src/raksha/src/parser/ir/ir_parser.cc:330,1
    - Dst: RegisterOperator
      Src: /src/raksha/src/parser/ir/ir_parser.cc:331,1
    - Dst: std::make_unique<Operator>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:332,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:335,1
    - Dst: GetOperator
      Src: /src/raksha/src/parser/ir/ir_parser.cc:335,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:336,1
    - Dst: number_of_return_values
      Src: /src/raksha/src/parser/ir/ir_parser.cc:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - operator_name
    - num_results
    argTypes:
    - absl::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 342
    functionName: "& MaybeRegisterOperator(absl::string_view operator_name,\n                                        size_t
      num_results)"
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - IsRegisteredOperator
    - GetOperator
    - RegisterOperator
    - std::make_unique<Operator>
    - CHECK
    - number_of_return_values
    linkageType: ''
    returnType: Operator
    signature: "Operator & MaybeRegisterOperator(absl::string_view operator_name,\n
      \                                       size_t num_results)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckAnyCast<Result>
      Src: /src/raksha/src/parser/ir/ir_parser.cc:346,1
    - Dst: Context*::accept
      Src: /src/raksha/src/parser/ir/ir_parser.cc:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - context
    - default_result
    argTypes:
    - Context*
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 348
    functionName: raksha::parser::ir::IrVisitor::VisitContextOrDefaultIfNull
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 4
    functionsReached:
    - CheckAnyCast<Result>
    - Context*::accept
    linkageType: ''
    returnType: Result
    signature: Result VisitContextOrDefaultIfNull(Context* context, Result default_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/parser/ir/ir_parser.cc:367,1
    - Dst: IrParser::irProgram
      Src: /src/raksha/src/parser/ir/ir_parser.cc:367,1
    - Dst: CHECK
      Src: /src/raksha/src/parser/ir/ir_parser.cc:369,1
    - Dst: IrParser::getNumberOfSyntaxErrors
      Src: /src/raksha/src/parser/ir/ir_parser.cc:369,1
    - Dst: IrVisitor::visitIrProgram
      Src: /src/raksha/src/parser/ir/ir_parser.cc:373,1
    - Dst: IrVisitor::TakeResult
      Src: /src/raksha/src/parser/ir/ir_parser.cc:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - prog_text
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 376
    functionName: raksha::parser::ir::ParseProgram
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser.cc
    functionUses: 8
    functionsReached:
    - ABSL_DIE_IF_NULL
    - IrVisitor::visitIrProgram
    - IrParser::irProgram
    - CHECK
    - IrParser::getNumberOfSyntaxErrors
    - IrVisitor::TakeResult
    linkageType: ''
    returnType: IrProgramParserResult
    signature: IrProgramParserResult ParseProgram(absl::string_view prog_text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:30,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:31,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:32,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: raksha::parser::ir::TEST_P
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - raksha::parser::ir::ParseProgram
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IrParserRoundtripTest, SimpleTestOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:138,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:140,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: raksha::parser::ir::TEST_P
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - raksha::parser::ir::ParseProgram
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IrParserNormalizingTest, FloatsAreNormalizedInTestOperations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:199,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 200
    functionName: raksha::parser::ir::TEST
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - EXPECT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(IrParseTest, ValueNotFoundCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:212,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 213
    functionName: raksha::parser::ir::TEST
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - EXPECT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(IrParseTest, ValueAccessedBetweenBlockCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:226,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 228
    functionName: raksha::parser::ir::TEST
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - EXPECT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(IrParseTest, NoStringAttributeQuoteCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:241,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 244
    functionName: raksha::parser::ir::TEST
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - EXPECT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(IrParseTest, OperatorWithDifferentNumberOfReturnFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:255,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:256,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:256,1
    - Dst: auto::module::blocks
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:258,1
    - Dst: operations
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:258,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:259,1
    - Dst: auto::ssa_names::GetOrCreateID
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:259,1
    - Dst: GetOutputValue
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:259,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:260,1
    - Dst: auto::ssa_names::GetOrCreateID
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:260,1
    - Dst: GetOutputValue
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:260,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:261,1
    - Dst: auto::ssa_names::GetOrCreateID
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:261,1
    - Dst: GetInputValue
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:261,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:262,1
    - Dst: NumberOfOutputs
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:262,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:263,1
    - Dst: auto::ssa_names::GetOrCreateID
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:263,1
    - Dst: GetOutputValue
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:263,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:265,1
    - Dst: auto::ssa_names::GetOrCreateID
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:265,1
    - Dst: GetInputValue
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 267
    functionName: raksha::parser::ir::TEST
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - raksha::parser::ir::ParseProgram
    - EXPECT_EQ
    - auto::ssa_names::GetOrCreateID
    - NumberOfOutputs
    - operations
    - EXPECT_DEATH
    - auto::module::blocks
    - GetOutputValue
    - GetInputValue
    linkageType: ''
    returnType: void
    signature: void TEST(IrParserOperationTest, SimpleTestOperationAPIs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:277,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:278,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:278,1
    - Dst: auto::module::blocks
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:280,1
    - Dst: operations
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:280,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:281,1
    - Dst: auto::ssa_names::GetOrCreateID
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:281,1
    - Dst: GetOutputValue
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 283
    functionName: raksha::parser::ir::TEST
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - raksha::parser::ir::ParseProgram
    - EXPECT_EQ
    - auto::ssa_names::GetOrCreateID
    - operations
    - EXPECT_DEATH
    - auto::module::blocks
    - GetOutputValue
    linkageType: ''
    returnType: void
    signature: void TEST(IrParserOperationDeathTest, DiesIfRequestingOutOfBoundOutputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:294,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:295,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:295,1
    - Dst: auto::module::blocks
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:297,1
    - Dst: operations
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:297,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:298,1
    - Dst: auto::ssa_names::GetOrCreateID
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:298,1
    - Dst: GetInputValue
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 300
    functionName: raksha::parser::ir::TEST
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - raksha::parser::ir::ParseProgram
    - EXPECT_EQ
    - auto::ssa_names::GetOrCreateID
    - operations
    - EXPECT_DEATH
    - auto::module::blocks
    - GetInputValue
    linkageType: ''
    returnType: void
    signature: void TEST(IrParserOperationDeathTest, DiesIfRequestingOutOfBoundInputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:303,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: raksha::parser::ir::TEST
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - EXPECT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(IrParserSyntaxErrorDeathTest, IrParserSyntaxErrorDeathTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:30,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:31,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:32,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: raksha::parser::ir::TEST_P
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - raksha::parser::ir::ParseProgram
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IrParserRoundtripTest, SimpleTestOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:138,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:140,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: raksha::parser::ir::TEST_P
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - raksha::parser::ir::ParseProgram
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(IrParserNormalizingTest, FloatsAreNormalizedInTestOperations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:199,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 200
    functionName: raksha::parser::ir::TEST
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - EXPECT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(IrParseTest, ValueNotFoundCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:212,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 213
    functionName: raksha::parser::ir::TEST
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - EXPECT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(IrParseTest, ValueAccessedBetweenBlockCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:226,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 228
    functionName: raksha::parser::ir::TEST
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - EXPECT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(IrParseTest, NoStringAttributeQuoteCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:241,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 244
    functionName: raksha::parser::ir::TEST
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - EXPECT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(IrParseTest, OperatorWithDifferentNumberOfReturnFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:255,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:256,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:256,1
    - Dst: auto::module::blocks
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:258,1
    - Dst: operations
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:258,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:259,1
    - Dst: auto::ssa_names::GetOrCreateID
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:259,1
    - Dst: GetOutputValue
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:259,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:260,1
    - Dst: auto::ssa_names::GetOrCreateID
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:260,1
    - Dst: GetOutputValue
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:260,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:261,1
    - Dst: auto::ssa_names::GetOrCreateID
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:261,1
    - Dst: GetInputValue
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:261,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:262,1
    - Dst: NumberOfOutputs
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:262,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:263,1
    - Dst: auto::ssa_names::GetOrCreateID
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:263,1
    - Dst: GetOutputValue
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:263,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:265,1
    - Dst: auto::ssa_names::GetOrCreateID
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:265,1
    - Dst: GetInputValue
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 267
    functionName: raksha::parser::ir::TEST
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - raksha::parser::ir::ParseProgram
    - EXPECT_EQ
    - auto::ssa_names::GetOrCreateID
    - NumberOfOutputs
    - operations
    - EXPECT_DEATH
    - auto::module::blocks
    - GetOutputValue
    - GetInputValue
    linkageType: ''
    returnType: void
    signature: void TEST(IrParserOperationTest, SimpleTestOperationAPIs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:277,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:278,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:278,1
    - Dst: auto::module::blocks
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:280,1
    - Dst: operations
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:280,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:281,1
    - Dst: auto::ssa_names::GetOrCreateID
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:281,1
    - Dst: GetOutputValue
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 283
    functionName: raksha::parser::ir::TEST
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - raksha::parser::ir::ParseProgram
    - EXPECT_EQ
    - auto::ssa_names::GetOrCreateID
    - operations
    - EXPECT_DEATH
    - auto::module::blocks
    - GetOutputValue
    linkageType: ''
    returnType: void
    signature: void TEST(IrParserOperationDeathTest, DiesIfRequestingOutOfBoundOutputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:294,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:295,1
    - Dst: raksha::ir::IRPrinter::ToString
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:295,1
    - Dst: auto::module::blocks
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:297,1
    - Dst: operations
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:297,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:298,1
    - Dst: auto::ssa_names::GetOrCreateID
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:298,1
    - Dst: GetInputValue
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 300
    functionName: raksha::parser::ir::TEST
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser_test.cc
    functionUses: 0
    functionsReached:
    - raksha::ir::IRPrinter::ToString
    - raksha::parser::ir::ParseProgram
    - EXPECT_EQ
    - auto::ssa_names::GetOrCreateID
    - operations
    - EXPECT_DEATH
    - auto::module::blocks
    - GetInputValue
    linkageType: ''
    returnType: void
    signature: void TEST(IrParserOperationDeathTest, DiesIfRequestingOutOfBoundInputs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:303,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_parser_test.cc:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: raksha::parser::ir::TEST
    functionSourceFile: /src/raksha/src/parser/ir/ir_parser_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - EXPECT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(IrParserSyntaxErrorDeathTest, IrParserSyntaxErrorDeathTest)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: absl::SetProgramUsageMessage
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:45,1
    - Dst: absl::ParseCommandLine
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:46,1
    - Dst: std::filesystem::path
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:49,1
    - Dst: absl::GetFlag
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:49,1
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:50,1
    - Dst: LOG
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:51,1
    - Dst: LOG
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:57,1
    - Dst: strerror
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:57,1
    - Dst: std::ifstream::rdbuf
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:62,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:64,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:64,1
    - Dst: std::move
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:65,1
    - Dst: IrProgramParserResult::module::Accept
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:66,1
    - Dst: std::filesystem::path
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:69,1
    - Dst: absl::GetFlag
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:69,1
    - Dst: LOG
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:73,1
    - Dst: strerror
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:73,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:77,1
    - Dst: DatalogLoweringVisitor::datalog_facts
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:78,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:81,1
    - Dst: ToDatalogFactsFileString
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 85
    functionName: raksha::parser::ir::MainInner
    functionSourceFile: /src/raksha/src/parser/ir/ir_to_operation_facts.cc
    functionUses: 0
    functionsReached:
    - IrProgramParserResult::module::Accept
    - raksha::parser::ir::ParseProgram
    - std::filesystem::path
    - absl::ParseCommandLine
    - absl::GetFlag
    - absl::SetProgramUsageMessage
    - strerror
    - absl::StrAppend
    - std::filesystem::exists
    - absl::StrJoin
    - ToDatalogFactsFileString
    - std::ostringstream::str
    - DatalogLoweringVisitor::datalog_facts
    - std::move
    - LOG
    - std::ifstream::rdbuf
    linkageType: ''
    returnType: int
    signature: int MainInner(int argc, char** argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: absl::SetProgramUsageMessage
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:45,1
    - Dst: absl::ParseCommandLine
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:46,1
    - Dst: std::filesystem::path
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:49,1
    - Dst: absl::GetFlag
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:49,1
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:50,1
    - Dst: LOG
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:51,1
    - Dst: LOG
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:57,1
    - Dst: strerror
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:57,1
    - Dst: std::ifstream::rdbuf
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:62,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:64,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:64,1
    - Dst: std::move
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:65,1
    - Dst: IrProgramParserResult::module::Accept
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:66,1
    - Dst: std::filesystem::path
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:69,1
    - Dst: absl::GetFlag
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:69,1
    - Dst: LOG
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:73,1
    - Dst: strerror
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:73,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:77,1
    - Dst: DatalogLoweringVisitor::datalog_facts
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:78,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:81,1
    - Dst: ToDatalogFactsFileString
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 85
    functionName: raksha::parser::ir::MainInner
    functionSourceFile: /src/raksha/src/parser/ir/ir_to_operation_facts.cc
    functionUses: 0
    functionsReached:
    - IrProgramParserResult::module::Accept
    - raksha::parser::ir::ParseProgram
    - std::filesystem::path
    - absl::ParseCommandLine
    - absl::GetFlag
    - absl::SetProgramUsageMessage
    - strerror
    - absl::StrAppend
    - std::filesystem::exists
    - absl::StrJoin
    - ToDatalogFactsFileString
    - std::ostringstream::str
    - DatalogLoweringVisitor::datalog_facts
    - std::move
    - LOG
    - std::ifstream::rdbuf
    linkageType: ''
    returnType: int
    signature: int MainInner(int argc, char** argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: absl::SetProgramUsageMessage
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:45,1
    - Dst: absl::ParseCommandLine
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:46,1
    - Dst: std::filesystem::path
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:49,1
    - Dst: absl::GetFlag
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:49,1
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:50,1
    - Dst: LOG
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:51,1
    - Dst: LOG
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:57,1
    - Dst: strerror
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:57,1
    - Dst: std::ifstream::rdbuf
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:62,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:64,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:64,1
    - Dst: std::move
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:65,1
    - Dst: IrProgramParserResult::module::Accept
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:66,1
    - Dst: std::filesystem::path
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:69,1
    - Dst: absl::GetFlag
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:69,1
    - Dst: LOG
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:73,1
    - Dst: strerror
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:73,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:77,1
    - Dst: DatalogLoweringVisitor::datalog_facts
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:78,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:81,1
    - Dst: ToDatalogFactsFileString
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 85
    functionName: raksha::parser::ir::MainInner
    functionSourceFile: /src/raksha/src/parser/ir/ir_to_operation_facts.cc
    functionUses: 0
    functionsReached:
    - IrProgramParserResult::module::Accept
    - raksha::parser::ir::ParseProgram
    - std::filesystem::path
    - absl::ParseCommandLine
    - absl::GetFlag
    - absl::SetProgramUsageMessage
    - strerror
    - absl::StrAppend
    - std::filesystem::exists
    - absl::StrJoin
    - ToDatalogFactsFileString
    - std::ostringstream::str
    - DatalogLoweringVisitor::datalog_facts
    - std::move
    - LOG
    - std::ifstream::rdbuf
    linkageType: ''
    returnType: int
    signature: int MainInner(int argc, char** argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: absl::SetProgramUsageMessage
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:45,1
    - Dst: absl::ParseCommandLine
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:46,1
    - Dst: std::filesystem::path
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:49,1
    - Dst: absl::GetFlag
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:49,1
    - Dst: std::filesystem::exists
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:50,1
    - Dst: LOG
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:51,1
    - Dst: LOG
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:57,1
    - Dst: strerror
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:57,1
    - Dst: std::ifstream::rdbuf
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:62,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:64,1
    - Dst: std::ostringstream::str
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:64,1
    - Dst: std::move
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:65,1
    - Dst: IrProgramParserResult::module::Accept
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:66,1
    - Dst: std::filesystem::path
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:69,1
    - Dst: absl::GetFlag
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:69,1
    - Dst: LOG
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:73,1
    - Dst: strerror
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:73,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:77,1
    - Dst: DatalogLoweringVisitor::datalog_facts
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:78,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:81,1
    - Dst: ToDatalogFactsFileString
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 85
    functionName: raksha::parser::ir::MainInner
    functionSourceFile: /src/raksha/src/parser/ir/ir_to_operation_facts.cc
    functionUses: 0
    functionsReached:
    - IrProgramParserResult::module::Accept
    - raksha::parser::ir::ParseProgram
    - std::filesystem::path
    - absl::ParseCommandLine
    - absl::GetFlag
    - absl::SetProgramUsageMessage
    - strerror
    - absl::StrAppend
    - std::filesystem::exists
    - absl::StrJoin
    - ToDatalogFactsFileString
    - std::ostringstream::str
    - DatalogLoweringVisitor::datalog_facts
    - std::move
    - LOG
    - std::ifstream::rdbuf
    linkageType: ''
    returnType: int
    signature: int MainInner(int argc, char** argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::parser::ir::MainInner
      Src: /src/raksha/src/parser/ir/ir_to_operation_facts.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: main
    functionSourceFile: /src/raksha/src/parser/ir/ir_to_operation_facts.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::MainInner
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - settings
    argTypes:
    - PolicyChecker::Settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 64
    functionName: raksha::ambient::GetSettingsName
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 0
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view GetSettingsName(PolicyChecker::Settings settings)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: raksha::ambient::GetSettings
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 0
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: PolicyChecker::Settings
    signature: PolicyChecker::Settings GetSettings(absl::string_view name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - user
    argTypes:
    - PolicyChecker::User
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 94
    functionName: raksha::ambient::GetUserName
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 0
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view GetUserName(PolicyChecker::User user)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:100,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:107,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:111,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 2
    argNames:
    - node
    - in_bound
    argTypes:
    - PolicyChecker::Node
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 121
    functionName: raksha::ambient::GetDataConnectionName
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 0
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: absl::string_view
    signature: "absl::string_view GetDataConnectionName(PolicyChecker::Node node,\n
      \                                       bool in_bound)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:125,1
    - Dst: souffle::SouffleProgram*::getRelation
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:125,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:128,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:128,1
    - Dst: souffle::Relation*::insert
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - program
    - edges
    argTypes:
    - souffle::SouffleProgram*
    - Range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: raksha::ambient::UpdateEdges
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - souffle::SouffleProgram*::getRelation
    - std::string
    - souffle::Relation*::insert
    linkageType: ''
    returnType: void
    signature: void UpdateEdges(const souffle::SouffleProgram *program, Range edges)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:137,1
    - Dst: souffle::SouffleProgram*::getRelation
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:137,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:143,1
    - Dst: raksha::ambient::GetUserName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:143,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:144,1
    - Dst: raksha::ambient::GetSettingsName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:144,1
    - Dst: souffle::Relation*::insert
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - program
    - user_settings
    argTypes:
    - souffle::SouffleProgram*
    - Range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: raksha::ambient::UpdateSettings
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - souffle::SouffleProgram*::getRelation
    - raksha::ambient::GetSettingsName
    - raksha::ambient::GetUserName
    - std::string
    - souffle::Relation*::insert
    linkageType: ''
    returnType: void
    signature: "void UpdateSettings(const souffle::SouffleProgram *program,\n                    Range
      user_settings)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - settings
    argTypes:
    - PolicyChecker::Settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 64
    functionName: raksha::ambient::GetSettingsName
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 1
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view GetSettingsName(PolicyChecker::Settings settings)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: raksha::ambient::GetSettings
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 0
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: PolicyChecker::Settings
    signature: PolicyChecker::Settings GetSettings(absl::string_view name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - user
    argTypes:
    - PolicyChecker::User
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 94
    functionName: raksha::ambient::GetUserName
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 1
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view GetUserName(PolicyChecker::User user)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:100,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:107,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:111,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 2
    argNames:
    - node
    - in_bound
    argTypes:
    - PolicyChecker::Node
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 121
    functionName: raksha::ambient::GetDataConnectionName
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 0
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: absl::string_view
    signature: "absl::string_view GetDataConnectionName(PolicyChecker::Node node,\n
      \                                       bool in_bound)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:125,1
    - Dst: souffle::SouffleProgram*::getRelation
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:125,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:128,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:128,1
    - Dst: souffle::Relation*::insert
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - program
    - edges
    argTypes:
    - souffle::SouffleProgram*
    - Range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: raksha::ambient::UpdateEdges
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - souffle::SouffleProgram*::getRelation
    - std::string
    - souffle::Relation*::insert
    linkageType: ''
    returnType: void
    signature: void UpdateEdges(const souffle::SouffleProgram *program, Range edges)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:137,1
    - Dst: souffle::SouffleProgram*::getRelation
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:137,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:143,1
    - Dst: raksha::ambient::GetUserName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:143,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:144,1
    - Dst: raksha::ambient::GetSettingsName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:144,1
    - Dst: souffle::Relation*::insert
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - program
    - user_settings
    argTypes:
    - souffle::SouffleProgram*
    - Range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: raksha::ambient::UpdateSettings
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - souffle::SouffleProgram*::getRelation
    - raksha::ambient::GetSettingsName
    - raksha::ambient::GetUserName
    - std::string
    - souffle::Relation*::insert
    linkageType: ''
    returnType: void
    signature: "void UpdateSettings(const souffle::SouffleProgram *program,\n                    Range
      user_settings)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ambient::PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:155,1
    - Dst: GetUserName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:155,1
    - Dst: GetSettingsName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - user
    - setting
    argTypes:
    - PolicyChecker::User
    - PolicyChecker::Settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: raksha::ambient::PolicyChecker::CanUserChangeSetting
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 1
    functionsReached:
    - GetSettingsName
    - GetUserName
    - raksha::ambient::PolicyChecker::CanUserChangeSetting
    linkageType: ''
    returnType: bool
    signature: "bool PolicyChecker::CanUserChangeSetting(PolicyChecker::User user,\n
      \                                        PolicyChecker::Settings setting)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr::run
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:162,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:167,1
    - Dst: std::unique_ptr::getRelation
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - user
    - setting_name
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 178
    functionName: raksha::ambient::PolicyChecker::CanUserChangeSetting
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 1
    functionsReached:
    - ABSL_DIE_IF_NULL
    - std::unique_ptr::run
    - std::unique_ptr::getRelation
    linkageType: ''
    returnType: bool
    signature: "bool PolicyChecker::CanUserChangeSetting(absl::string_view user,\n
      \                                        absl::string_view setting_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ambient::PolicyChecker::AvailableSettings
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:183,1
    - Dst: GetUserName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:183,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:184,1
    - Dst: GetSettings
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - user
    argTypes:
    - PolicyChecker::User
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: raksha::ambient::PolicyChecker::AvailableSettings
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 1
    functionsReached:
    - raksha::ambient::PolicyChecker::AvailableSettings
    - GetSettings
    - GetUserName
    - absl::flat_hash_set::insert
    linkageType: ''
    returnType: absl::flat_hash_set<PolicyChecker::Settings>
    signature: "absl::flat_hash_set<PolicyChecker::Settings> PolicyChecker::AvailableSettings(\n
      \   PolicyChecker::User user) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr::run
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:194,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:199,1
    - Dst: std::unique_ptr::getRelation
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:199,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - user
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 209
    functionName: raksha::ambient::PolicyChecker::AvailableSettings
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 1
    functionsReached:
    - ABSL_DIE_IF_NULL
    - absl::flat_hash_set::insert
    - std::unique_ptr::run
    - std::unique_ptr::getRelation
    linkageType: ''
    returnType: absl::flat_hash_set<std::string>
    signature: "absl::flat_hash_set<std::string> PolicyChecker::AvailableSettings(\n
      \   absl::string_view user) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetUserName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:213,1
    - Dst: GetSettingsName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:214,1
    - Dst: raksha::ambient::PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:215,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - user
    - setting
    - value
    argTypes:
    - PolicyChecker::User
    - PolicyChecker::Settings
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 221
    functionName: raksha::ambient::PolicyChecker::ChangeSetting
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 0
    functionsReached:
    - GetSettingsName
    - CHECK
    - GetUserName
    - raksha::ambient::PolicyChecker::CanUserChangeSetting
    linkageType: ''
    returnType: bool
    signature: "bool PolicyChecker::ChangeSetting(PolicyChecker::User user,\n                                  PolicyChecker::Settings
      setting, bool value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ambient::PolicyChecker::AddIfValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:225,1
    - Dst: GetDataConnectionName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:225,1
    - Dst: GetDataConnectionName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - source
    - target
    argTypes:
    - Node
    - Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: raksha::ambient::PolicyChecker::AddIfValidEdge
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 1
    functionsReached:
    - GetDataConnectionName
    - raksha::ambient::PolicyChecker::AddIfValidEdge
    linkageType: ''
    returnType: std::pair<bool, std::string>
    signature: "std::pair<bool, std::string> PolicyChecker::AddIfValidEdge(Node source,\n
      \                                                          Node target)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ambient::PolicyChecker::IsEdgePresent
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:231,1
    - Dst: raksha::ambient::PolicyChecker::AddEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:232,1
    - Dst: raksha::ambient::PolicyChecker::ValidatePolicyCompliance
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:233,1
    - Dst: raksha::ambient::PolicyChecker::RemoveEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - src
    - tgt
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 238
    functionName: raksha::ambient::PolicyChecker::AddIfValidEdge
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 1
    functionsReached:
    - raksha::ambient::PolicyChecker::ValidatePolicyCompliance
    - raksha::ambient::PolicyChecker::AddEdge
    - raksha::ambient::PolicyChecker::RemoveEdge
    - raksha::ambient::PolicyChecker::IsEdgePresent
    linkageType: ''
    returnType: std::pair<bool, std::string>
    signature: "std::pair<bool, std::string> PolicyChecker::AddIfValidEdge(\n    absl::string_view
      src, absl::string_view tgt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ambient::PolicyChecker::IsValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:242,1
    - Dst: GetDataConnectionName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:242,1
    - Dst: GetDataConnectionName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - source
    - target
    argTypes:
    - Node
    - Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: raksha::ambient::PolicyChecker::IsValidEdge
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 1
    functionsReached:
    - GetDataConnectionName
    - raksha::ambient::PolicyChecker::IsValidEdge
    linkageType: ''
    returnType: std::pair<bool, std::string>
    signature: "std::pair<bool, std::string> PolicyChecker::IsValidEdge(Node source,\n
      \                                                       Node target)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ambient::PolicyChecker::AddEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:248,1
    - Dst: raksha::ambient::PolicyChecker::ValidatePolicyCompliance
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:249,1
    - Dst: raksha::ambient::PolicyChecker::RemoveEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - src
    - tgt
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 252
    functionName: raksha::ambient::PolicyChecker::IsValidEdge
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 1
    functionsReached:
    - raksha::ambient::PolicyChecker::ValidatePolicyCompliance
    - raksha::ambient::PolicyChecker::AddEdge
    - raksha::ambient::PolicyChecker::RemoveEdge
    linkageType: ''
    returnType: std::pair<bool, std::string>
    signature: "std::pair<bool, std::string> PolicyChecker::IsValidEdge(absl::string_view
      src,\n                                                        absl::string_view
      tgt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UpdateEdges
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:258,1
    - Dst: std::unique_ptr::get
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:258,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:258,1
    - Dst: begin
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:258,1
    - Dst: end
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:258,1
    - Dst: UpdateSettings
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:259,1
    - Dst: std::unique_ptr::get
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:259,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:259,1
    - Dst: begin
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:259,1
    - Dst: end
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:260,1
    - Dst: std::unique_ptr::run
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:262,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:265,1
    - Dst: std::unique_ptr::getRelation
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:265,1
    - Dst: souffle::Relation*::size
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:269,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:270,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:277,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:277,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 281
    functionName: raksha::ambient::PolicyChecker::ValidatePolicyCompliance
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 2
    functionsReached:
    - ABSL_DIE_IF_NULL
    - absl::StrAppend
    - std::make_pair
    - std::unique_ptr::run
    - std::unique_ptr::get
    - UpdateEdges
    - absl::StrFormat
    - raksha::utils::make_range
    - end
    - souffle::Relation*::size
    - begin
    - UpdateSettings
    - std::unique_ptr::getRelation
    linkageType: ''
    returnType: std::pair<bool, std::string>
    signature: std::pair<bool, std::string> PolicyChecker::ValidatePolicyCompliance()
      const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - settings
    argTypes:
    - PolicyChecker::Settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 64
    functionName: raksha::ambient::GetSettingsName
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 2
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view GetSettingsName(PolicyChecker::Settings settings)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: raksha::ambient::GetSettings
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 0
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: PolicyChecker::Settings
    signature: PolicyChecker::Settings GetSettings(absl::string_view name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - user
    argTypes:
    - PolicyChecker::User
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 94
    functionName: raksha::ambient::GetUserName
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 2
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view GetUserName(PolicyChecker::User user)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:100,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:107,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:111,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 2
    argNames:
    - node
    - in_bound
    argTypes:
    - PolicyChecker::Node
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 121
    functionName: raksha::ambient::GetDataConnectionName
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 0
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: absl::string_view
    signature: "absl::string_view GetDataConnectionName(PolicyChecker::Node node,\n
      \                                       bool in_bound)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:125,1
    - Dst: souffle::SouffleProgram*::getRelation
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:125,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:128,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:128,1
    - Dst: souffle::Relation*::insert
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - program
    - edges
    argTypes:
    - souffle::SouffleProgram*
    - Range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: raksha::ambient::UpdateEdges
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - souffle::SouffleProgram*::getRelation
    - std::string
    - souffle::Relation*::insert
    linkageType: ''
    returnType: void
    signature: void UpdateEdges(const souffle::SouffleProgram *program, Range edges)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:137,1
    - Dst: souffle::SouffleProgram*::getRelation
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:137,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:143,1
    - Dst: raksha::ambient::GetUserName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:143,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:144,1
    - Dst: raksha::ambient::GetSettingsName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:144,1
    - Dst: souffle::Relation*::insert
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - program
    - user_settings
    argTypes:
    - souffle::SouffleProgram*
    - Range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: raksha::ambient::UpdateSettings
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - souffle::SouffleProgram*::getRelation
    - raksha::ambient::GetSettingsName
    - raksha::ambient::GetUserName
    - std::string
    - souffle::Relation*::insert
    linkageType: ''
    returnType: void
    signature: "void UpdateSettings(const souffle::SouffleProgram *program,\n                    Range
      user_settings)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - settings
    argTypes:
    - PolicyChecker::Settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 64
    functionName: raksha::ambient::GetSettingsName
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 3
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view GetSettingsName(PolicyChecker::Settings settings)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: raksha::ambient::GetSettings
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 0
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: PolicyChecker::Settings
    signature: PolicyChecker::Settings GetSettings(absl::string_view name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - user
    argTypes:
    - PolicyChecker::User
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 94
    functionName: raksha::ambient::GetUserName
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 3
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view GetUserName(PolicyChecker::User user)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:100,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:107,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:111,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 2
    argNames:
    - node
    - in_bound
    argTypes:
    - PolicyChecker::Node
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 121
    functionName: raksha::ambient::GetDataConnectionName
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 0
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: absl::string_view
    signature: "absl::string_view GetDataConnectionName(PolicyChecker::Node node,\n
      \                                       bool in_bound)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:125,1
    - Dst: souffle::SouffleProgram*::getRelation
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:125,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:128,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:128,1
    - Dst: souffle::Relation*::insert
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - program
    - edges
    argTypes:
    - souffle::SouffleProgram*
    - Range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: raksha::ambient::UpdateEdges
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - souffle::SouffleProgram*::getRelation
    - std::string
    - souffle::Relation*::insert
    linkageType: ''
    returnType: void
    signature: void UpdateEdges(const souffle::SouffleProgram *program, Range edges)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:137,1
    - Dst: souffle::SouffleProgram*::getRelation
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:137,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:143,1
    - Dst: raksha::ambient::GetUserName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:143,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:144,1
    - Dst: raksha::ambient::GetSettingsName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:144,1
    - Dst: souffle::Relation*::insert
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - program
    - user_settings
    argTypes:
    - souffle::SouffleProgram*
    - Range
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: raksha::ambient::UpdateSettings
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - souffle::SouffleProgram*::getRelation
    - raksha::ambient::GetSettingsName
    - raksha::ambient::GetUserName
    - std::string
    - souffle::Relation*::insert
    linkageType: ''
    returnType: void
    signature: "void UpdateSettings(const souffle::SouffleProgram *program,\n                    Range
      user_settings)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ambient::PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:155,1
    - Dst: GetUserName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:155,1
    - Dst: GetSettingsName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - user
    - setting
    argTypes:
    - PolicyChecker::User
    - PolicyChecker::Settings
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: raksha::ambient::PolicyChecker::CanUserChangeSetting
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 3
    functionsReached:
    - GetSettingsName
    - GetUserName
    - raksha::ambient::PolicyChecker::CanUserChangeSetting
    linkageType: ''
    returnType: bool
    signature: "bool PolicyChecker::CanUserChangeSetting(PolicyChecker::User user,\n
      \                                        PolicyChecker::Settings setting)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr::run
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:162,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:167,1
    - Dst: std::unique_ptr::getRelation
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - user
    - setting_name
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 178
    functionName: raksha::ambient::PolicyChecker::CanUserChangeSetting
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 3
    functionsReached:
    - ABSL_DIE_IF_NULL
    - std::unique_ptr::run
    - std::unique_ptr::getRelation
    linkageType: ''
    returnType: bool
    signature: "bool PolicyChecker::CanUserChangeSetting(absl::string_view user,\n
      \                                        absl::string_view setting_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ambient::PolicyChecker::AvailableSettings
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:183,1
    - Dst: GetUserName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:183,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:184,1
    - Dst: GetSettings
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - user
    argTypes:
    - PolicyChecker::User
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: raksha::ambient::PolicyChecker::AvailableSettings
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 2
    functionsReached:
    - raksha::ambient::PolicyChecker::AvailableSettings
    - GetSettings
    - GetUserName
    - absl::flat_hash_set::insert
    linkageType: ''
    returnType: absl::flat_hash_set<PolicyChecker::Settings>
    signature: "absl::flat_hash_set<PolicyChecker::Settings> PolicyChecker::AvailableSettings(\n
      \   PolicyChecker::User user) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr::run
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:194,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:199,1
    - Dst: std::unique_ptr::getRelation
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:199,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - user
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 209
    functionName: raksha::ambient::PolicyChecker::AvailableSettings
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 2
    functionsReached:
    - ABSL_DIE_IF_NULL
    - absl::flat_hash_set::insert
    - std::unique_ptr::run
    - std::unique_ptr::getRelation
    linkageType: ''
    returnType: absl::flat_hash_set<std::string>
    signature: "absl::flat_hash_set<std::string> PolicyChecker::AvailableSettings(\n
      \   absl::string_view user) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetUserName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:213,1
    - Dst: GetSettingsName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:214,1
    - Dst: raksha::ambient::PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:215,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - user
    - setting
    - value
    argTypes:
    - PolicyChecker::User
    - PolicyChecker::Settings
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 221
    functionName: raksha::ambient::PolicyChecker::ChangeSetting
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 0
    functionsReached:
    - GetSettingsName
    - CHECK
    - GetUserName
    - raksha::ambient::PolicyChecker::CanUserChangeSetting
    linkageType: ''
    returnType: bool
    signature: "bool PolicyChecker::ChangeSetting(PolicyChecker::User user,\n                                  PolicyChecker::Settings
      setting, bool value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ambient::PolicyChecker::AddIfValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:225,1
    - Dst: GetDataConnectionName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:225,1
    - Dst: GetDataConnectionName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - source
    - target
    argTypes:
    - Node
    - Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: raksha::ambient::PolicyChecker::AddIfValidEdge
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 2
    functionsReached:
    - GetDataConnectionName
    - raksha::ambient::PolicyChecker::AddIfValidEdge
    linkageType: ''
    returnType: std::pair<bool, std::string>
    signature: "std::pair<bool, std::string> PolicyChecker::AddIfValidEdge(Node source,\n
      \                                                          Node target)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ambient::PolicyChecker::IsEdgePresent
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:231,1
    - Dst: raksha::ambient::PolicyChecker::AddEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:232,1
    - Dst: raksha::ambient::PolicyChecker::ValidatePolicyCompliance
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:233,1
    - Dst: raksha::ambient::PolicyChecker::RemoveEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - src
    - tgt
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 238
    functionName: raksha::ambient::PolicyChecker::AddIfValidEdge
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 2
    functionsReached:
    - raksha::ambient::PolicyChecker::ValidatePolicyCompliance
    - raksha::ambient::PolicyChecker::AddEdge
    - raksha::ambient::PolicyChecker::RemoveEdge
    - raksha::ambient::PolicyChecker::IsEdgePresent
    linkageType: ''
    returnType: std::pair<bool, std::string>
    signature: "std::pair<bool, std::string> PolicyChecker::AddIfValidEdge(\n    absl::string_view
      src, absl::string_view tgt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ambient::PolicyChecker::IsValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:242,1
    - Dst: GetDataConnectionName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:242,1
    - Dst: GetDataConnectionName
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - source
    - target
    argTypes:
    - Node
    - Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: raksha::ambient::PolicyChecker::IsValidEdge
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 2
    functionsReached:
    - GetDataConnectionName
    - raksha::ambient::PolicyChecker::IsValidEdge
    linkageType: ''
    returnType: std::pair<bool, std::string>
    signature: "std::pair<bool, std::string> PolicyChecker::IsValidEdge(Node source,\n
      \                                                       Node target)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::ambient::PolicyChecker::AddEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:248,1
    - Dst: raksha::ambient::PolicyChecker::ValidatePolicyCompliance
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:249,1
    - Dst: raksha::ambient::PolicyChecker::RemoveEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - src
    - tgt
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 252
    functionName: raksha::ambient::PolicyChecker::IsValidEdge
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 2
    functionsReached:
    - raksha::ambient::PolicyChecker::ValidatePolicyCompliance
    - raksha::ambient::PolicyChecker::AddEdge
    - raksha::ambient::PolicyChecker::RemoveEdge
    linkageType: ''
    returnType: std::pair<bool, std::string>
    signature: "std::pair<bool, std::string> PolicyChecker::IsValidEdge(absl::string_view
      src,\n                                                        absl::string_view
      tgt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UpdateEdges
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:258,1
    - Dst: std::unique_ptr::get
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:258,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:258,1
    - Dst: begin
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:258,1
    - Dst: end
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:258,1
    - Dst: UpdateSettings
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:259,1
    - Dst: std::unique_ptr::get
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:259,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:259,1
    - Dst: begin
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:259,1
    - Dst: end
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:260,1
    - Dst: std::unique_ptr::run
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:262,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:265,1
    - Dst: std::unique_ptr::getRelation
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:265,1
    - Dst: souffle::Relation*::size
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:269,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:270,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:277,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:277,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/ambient/policy_checker.cc:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 281
    functionName: raksha::ambient::PolicyChecker::ValidatePolicyCompliance
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.cc
    functionUses: 4
    functionsReached:
    - ABSL_DIE_IF_NULL
    - absl::StrAppend
    - std::make_pair
    - std::unique_ptr::run
    - std::unique_ptr::get
    - UpdateEdges
    - absl::StrFormat
    - raksha::utils::make_range
    - end
    - souffle::Relation*::size
    - begin
    - UpdateSettings
    - std::unique_ptr::getRelation
    linkageType: ''
    returnType: std::pair<bool, std::string>
    signature: std::pair<bool, std::string> PolicyChecker::ValidatePolicyCompliance()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SettingsMap
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:54,1
    - Dst: SettingsMap
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: raksha::ambient::PolicyChecker::PolicyChecker
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.h
    functionUses: 0
    functionsReached:
    - SettingsMap
    linkageType: ''
    returnType: void
    signature: void PolicyChecker()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:99,1
    - Dst: DataFlowEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:99,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:99,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - tgt
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: raksha::ambient::PolicyChecker::AddEdge
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.h
    functionUses: 4
    functionsReached:
    - DataFlowEdge
    - std::string
    - insert
    linkageType: ''
    returnType: void
    signature: void AddEdge(absl::string_view src, absl::string_view tgt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:104,1
    - Dst: DataFlowEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:104,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:104,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - tgt
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: raksha::ambient::PolicyChecker::IsEdgePresent
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.h
    functionUses: 2
    functionsReached:
    - std::string
    - DataFlowEdge
    - count
    linkageType: ''
    returnType: bool
    signature: bool IsEdgePresent(absl::string_view src, absl::string_view tgt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:109,1
    - Dst: DataFlowEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:109,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:109,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - tgt
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: raksha::ambient::PolicyChecker::RemoveEdge
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.h
    functionUses: 4
    functionsReached:
    - erase
    - DataFlowEdge
    - std::string
    linkageType: ''
    returnType: void
    signature: void RemoveEdge(absl::string_view src, absl::string_view tgt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SettingsMap
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:54,1
    - Dst: SettingsMap
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: raksha::ambient::PolicyChecker::PolicyChecker
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.h
    functionUses: 0
    functionsReached:
    - SettingsMap
    linkageType: ''
    returnType: void
    signature: void PolicyChecker()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:99,1
    - Dst: DataFlowEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:99,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:99,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - tgt
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: raksha::ambient::PolicyChecker::AddEdge
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.h
    functionUses: 4
    functionsReached:
    - DataFlowEdge
    - std::string
    - insert
    linkageType: ''
    returnType: void
    signature: void AddEdge(absl::string_view src, absl::string_view tgt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:104,1
    - Dst: DataFlowEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:104,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:104,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - tgt
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: raksha::ambient::PolicyChecker::IsEdgePresent
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.h
    functionUses: 2
    functionsReached:
    - std::string
    - DataFlowEdge
    - count
    linkageType: ''
    returnType: bool
    signature: bool IsEdgePresent(absl::string_view src, absl::string_view tgt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:109,1
    - Dst: DataFlowEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:109,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:109,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/ambient/policy_checker.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - tgt
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: raksha::ambient::PolicyChecker::RemoveEdge
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker.h
    functionUses: 4
    functionsReached:
    - erase
    - DataFlowEdge
    - std::string
    linkageType: ''
    returnType: void
    signature: void RemoveEdge(absl::string_view src, absl::string_view tgt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:32,1
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:34,1
    - Dst: PolicyChecker::IsValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: raksha::ambient::TEST_P
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - PolicyChecker::ChangeSetting
    - PolicyChecker::IsValidEdge
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(PolicyCheckerEdgeTest, StreamingEdgeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:47,1
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:49,1
    - Dst: PolicyChecker::IsValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:52,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 57
    functionName: raksha::ambient::TEST_P
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - PolicyChecker::ChangeSetting
    - PolicyChecker::IsValidEdge
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(PolicyCheckerEdgeTest, ASREdgeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:60,1
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:62,1
    - Dst: PolicyChecker::IsValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: raksha::ambient::TEST_P
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - PolicyChecker::ChangeSetting
    - PolicyChecker::IsValidEdge
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(PolicyCheckerEdgeTest, StorageEdgeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:77,1
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:79,1
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:81,1
    - Dst: PolicyChecker::AddIfValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:88,1
    - Dst: PolicyChecker::AddIfValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:96,1
    - Dst: PolicyChecker::AddIfValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:103,1
    - Dst: PolicyChecker::ValidatePolicyCompliance
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 109
    functionName: raksha::ambient::TEST
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - PolicyChecker::ChangeSetting
    - PolicyChecker::AddIfValidEdge
    - EXPECT_EQ
    - PolicyChecker::ValidatePolicyCompliance
    linkageType: ''
    returnType: void
    signature: void TEST(PolicyCheckerTest, EdgesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:113,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:113,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:115,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:115,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:117,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:117,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:119,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:119,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:121,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:121,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:123,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 125
    functionName: raksha::ambient::TEST
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - PolicyChecker::CanUserChangeSetting
    linkageType: ''
    returnType: void
    signature: void TEST(PolicyCheckerTest, WhoCanChangeSettings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:129,1
    - Dst: PolicyChecker::AvailableSettings
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:130,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:131,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:134,1
    - Dst: PolicyChecker::AvailableSettings
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:134,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 136
    functionName: raksha::ambient::TEST
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - testing::UnorderedElementsAre
    - EXPECT_THAT
    - PolicyChecker::AvailableSettings
    linkageType: ''
    returnType: void
    signature: void TEST(PolicyCheckerTest, AvailableSettings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:32,1
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:34,1
    - Dst: PolicyChecker::IsValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: raksha::ambient::TEST_P
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - PolicyChecker::ChangeSetting
    - PolicyChecker::IsValidEdge
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(PolicyCheckerEdgeTest, StreamingEdgeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:47,1
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:49,1
    - Dst: PolicyChecker::IsValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:52,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 57
    functionName: raksha::ambient::TEST_P
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - PolicyChecker::ChangeSetting
    - PolicyChecker::IsValidEdge
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(PolicyCheckerEdgeTest, ASREdgeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:60,1
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:62,1
    - Dst: PolicyChecker::IsValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: raksha::ambient::TEST_P
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - PolicyChecker::ChangeSetting
    - PolicyChecker::IsValidEdge
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(PolicyCheckerEdgeTest, StorageEdgeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:77,1
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:79,1
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:81,1
    - Dst: PolicyChecker::AddIfValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:88,1
    - Dst: PolicyChecker::AddIfValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:96,1
    - Dst: PolicyChecker::AddIfValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:103,1
    - Dst: PolicyChecker::ValidatePolicyCompliance
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 109
    functionName: raksha::ambient::TEST
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - PolicyChecker::ChangeSetting
    - PolicyChecker::AddIfValidEdge
    - EXPECT_EQ
    - PolicyChecker::ValidatePolicyCompliance
    linkageType: ''
    returnType: void
    signature: void TEST(PolicyCheckerTest, EdgesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:113,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:113,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:115,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:115,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:117,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:117,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:119,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:119,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:121,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:121,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:123,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 125
    functionName: raksha::ambient::TEST
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - PolicyChecker::CanUserChangeSetting
    linkageType: ''
    returnType: void
    signature: void TEST(PolicyCheckerTest, WhoCanChangeSettings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:129,1
    - Dst: PolicyChecker::AvailableSettings
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:130,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:131,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:134,1
    - Dst: PolicyChecker::AvailableSettings
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:134,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 136
    functionName: raksha::ambient::TEST
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - testing::UnorderedElementsAre
    - EXPECT_THAT
    - PolicyChecker::AvailableSettings
    linkageType: ''
    returnType: void
    signature: void TEST(PolicyCheckerTest, AvailableSettings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:32,1
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:34,1
    - Dst: PolicyChecker::IsValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: raksha::ambient::TEST_P
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - PolicyChecker::ChangeSetting
    - PolicyChecker::IsValidEdge
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(PolicyCheckerEdgeTest, StreamingEdgeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:47,1
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:49,1
    - Dst: PolicyChecker::IsValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:52,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 57
    functionName: raksha::ambient::TEST_P
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - PolicyChecker::ChangeSetting
    - PolicyChecker::IsValidEdge
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(PolicyCheckerEdgeTest, ASREdgeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:60,1
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:62,1
    - Dst: PolicyChecker::IsValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: raksha::ambient::TEST_P
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - PolicyChecker::ChangeSetting
    - PolicyChecker::IsValidEdge
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(PolicyCheckerEdgeTest, StorageEdgeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:77,1
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:79,1
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:81,1
    - Dst: PolicyChecker::AddIfValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:88,1
    - Dst: PolicyChecker::AddIfValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:96,1
    - Dst: PolicyChecker::AddIfValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:103,1
    - Dst: PolicyChecker::ValidatePolicyCompliance
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 109
    functionName: raksha::ambient::TEST
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - PolicyChecker::ChangeSetting
    - PolicyChecker::AddIfValidEdge
    - EXPECT_EQ
    - PolicyChecker::ValidatePolicyCompliance
    linkageType: ''
    returnType: void
    signature: void TEST(PolicyCheckerTest, EdgesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:113,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:113,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:115,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:115,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:117,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:117,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:119,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:119,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:121,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:121,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:123,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 125
    functionName: raksha::ambient::TEST
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - PolicyChecker::CanUserChangeSetting
    linkageType: ''
    returnType: void
    signature: void TEST(PolicyCheckerTest, WhoCanChangeSettings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:129,1
    - Dst: PolicyChecker::AvailableSettings
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:130,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:131,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:134,1
    - Dst: PolicyChecker::AvailableSettings
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:134,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 136
    functionName: raksha::ambient::TEST
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - testing::UnorderedElementsAre
    - EXPECT_THAT
    - PolicyChecker::AvailableSettings
    linkageType: ''
    returnType: void
    signature: void TEST(PolicyCheckerTest, AvailableSettings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:32,1
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:34,1
    - Dst: PolicyChecker::IsValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: raksha::ambient::TEST_P
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - PolicyChecker::ChangeSetting
    - PolicyChecker::IsValidEdge
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(PolicyCheckerEdgeTest, StreamingEdgeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:47,1
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:49,1
    - Dst: PolicyChecker::IsValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:52,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 57
    functionName: raksha::ambient::TEST_P
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - PolicyChecker::ChangeSetting
    - PolicyChecker::IsValidEdge
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(PolicyCheckerEdgeTest, ASREdgeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:60,1
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:62,1
    - Dst: PolicyChecker::IsValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: raksha::ambient::TEST_P
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - PolicyChecker::ChangeSetting
    - PolicyChecker::IsValidEdge
    - EXPECT_EQ
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(PolicyCheckerEdgeTest, StorageEdgeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:77,1
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:79,1
    - Dst: PolicyChecker::ChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:81,1
    - Dst: PolicyChecker::AddIfValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:88,1
    - Dst: PolicyChecker::AddIfValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:96,1
    - Dst: PolicyChecker::AddIfValidEdge
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:103,1
    - Dst: PolicyChecker::ValidatePolicyCompliance
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 109
    functionName: raksha::ambient::TEST
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - PolicyChecker::ChangeSetting
    - PolicyChecker::AddIfValidEdge
    - EXPECT_EQ
    - PolicyChecker::ValidatePolicyCompliance
    linkageType: ''
    returnType: void
    signature: void TEST(PolicyCheckerTest, EdgesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:113,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:113,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:115,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:115,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:117,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:117,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:119,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:119,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:121,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:121,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:123,1
    - Dst: PolicyChecker::CanUserChangeSetting
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 125
    functionName: raksha::ambient::TEST
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - PolicyChecker::CanUserChangeSetting
    linkageType: ''
    returnType: void
    signature: void TEST(PolicyCheckerTest, WhoCanChangeSettings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:129,1
    - Dst: PolicyChecker::AvailableSettings
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:130,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:131,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:134,1
    - Dst: PolicyChecker::AvailableSettings
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:134,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/frontends/ambient/policy_checker_test.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 136
    functionName: raksha::ambient::TEST
    functionSourceFile: /src/raksha/src/frontends/ambient/policy_checker_test.cc
    functionUses: 0
    functionsReached:
    - testing::UnorderedElementsAre
    - EXPECT_THAT
    - PolicyChecker::AvailableSettings
    linkageType: ''
    returnType: void
    signature: void TEST(PolicyCheckerTest, AvailableSettings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::ParsedFormat<'s', 's'>
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: raksha::frontends::sql::DecodeLiteralExprTest::GetTextprotoFormat
    functionSourceFile: /src/raksha/src/frontends/sql/decode_literal_test.cc
    functionUses: 0
    functionsReached:
    - absl::ParsedFormat<'s', 's'>
    linkageType: ''
    returnType: absl::ParsedFormat<'s', 's'>
    signature: absl::ParsedFormat<'s', 's'> GetTextprotoFormat() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:54,1
    - Dst: GetDecodedValue
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:55,1
    - Dst: BuildTopLevelBlock
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:56,1
    - Dst: raksha::frontends::sql::testing::UnwrapDefaultOperationResult
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:60,1
    - Dst: Operation::parent
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:60,1
    - Dst: SqlOp::GetIf<LiteralOp>
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:62,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:64,1
    - Dst: LiteralOp*::GetLiteralString
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_literal_test.cc
    functionUses: 0
    functionsReached:
    - SqlOp::GetIf<LiteralOp>
    - EXPECT_EQ
    - Operation::parent
    - raksha::frontends::sql::testing::UnwrapDefaultOperationResult
    - BuildTopLevelBlock
    - GetDecodedValue
    - LiteralOp*::GetLiteralString
    - ASSERT_NE
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeLiteralExprTest, DecodeLiteralExprTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::ParsedFormat<'s', 's'>
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: raksha::frontends::sql::DecodeLiteralExprTest::GetTextprotoFormat
    functionSourceFile: /src/raksha/src/frontends/sql/decode_literal_test.cc
    functionUses: 0
    functionsReached:
    - absl::ParsedFormat<'s', 's'>
    linkageType: ''
    returnType: absl::ParsedFormat<'s', 's'>
    signature: absl::ParsedFormat<'s', 's'> GetTextprotoFormat() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:54,1
    - Dst: GetDecodedValue
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:55,1
    - Dst: BuildTopLevelBlock
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:56,1
    - Dst: raksha::frontends::sql::testing::UnwrapDefaultOperationResult
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:60,1
    - Dst: Operation::parent
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:60,1
    - Dst: SqlOp::GetIf<LiteralOp>
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:62,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:64,1
    - Dst: LiteralOp*::GetLiteralString
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_literal_test.cc
    functionUses: 0
    functionsReached:
    - SqlOp::GetIf<LiteralOp>
    - EXPECT_EQ
    - Operation::parent
    - raksha::frontends::sql::testing::UnwrapDefaultOperationResult
    - BuildTopLevelBlock
    - GetDecodedValue
    - LiteralOp*::GetLiteralString
    - ASSERT_NE
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeLiteralExprTest, DecodeLiteralExprTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::ParsedFormat<'s', 's'>
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: raksha::frontends::sql::DecodeLiteralExprTest::GetTextprotoFormat
    functionSourceFile: /src/raksha/src/frontends/sql/decode_literal_test.cc
    functionUses: 0
    functionsReached:
    - absl::ParsedFormat<'s', 's'>
    linkageType: ''
    returnType: absl::ParsedFormat<'s', 's'>
    signature: absl::ParsedFormat<'s', 's'> GetTextprotoFormat() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:54,1
    - Dst: GetDecodedValue
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:55,1
    - Dst: BuildTopLevelBlock
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:56,1
    - Dst: raksha::frontends::sql::testing::UnwrapDefaultOperationResult
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:60,1
    - Dst: Operation::parent
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:60,1
    - Dst: SqlOp::GetIf<LiteralOp>
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:62,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:64,1
    - Dst: LiteralOp*::GetLiteralString
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_literal_test.cc
    functionUses: 0
    functionsReached:
    - SqlOp::GetIf<LiteralOp>
    - EXPECT_EQ
    - Operation::parent
    - raksha::frontends::sql::testing::UnwrapDefaultOperationResult
    - BuildTopLevelBlock
    - GetDecodedValue
    - LiteralOp*::GetLiteralString
    - ASSERT_NE
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeLiteralExprTest, DecodeLiteralExprTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::ParsedFormat<'s', 's'>
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: raksha::frontends::sql::DecodeLiteralExprTest::GetTextprotoFormat
    functionSourceFile: /src/raksha/src/frontends/sql/decode_literal_test.cc
    functionUses: 0
    functionsReached:
    - absl::ParsedFormat<'s', 's'>
    linkageType: ''
    returnType: absl::ParsedFormat<'s', 's'>
    signature: absl::ParsedFormat<'s', 's'> GetTextprotoFormat() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:54,1
    - Dst: GetDecodedValue
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:55,1
    - Dst: BuildTopLevelBlock
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:56,1
    - Dst: raksha::frontends::sql::testing::UnwrapDefaultOperationResult
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:60,1
    - Dst: Operation::parent
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:60,1
    - Dst: SqlOp::GetIf<LiteralOp>
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:62,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:64,1
    - Dst: LiteralOp*::GetLiteralString
      Src: /src/raksha/src/frontends/sql/decode_literal_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_literal_test.cc
    functionUses: 0
    functionsReached:
    - SqlOp::GetIf<LiteralOp>
    - EXPECT_EQ
    - Operation::parent
    - raksha::frontends::sql::testing::UnwrapDefaultOperationResult
    - BuildTopLevelBlock
    - GetDecodedValue
    - LiteralOp*::GetLiteralString
    - ASSERT_NE
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeLiteralExprTest, DecodeLiteralExprTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: raksha::frontends::sql::NameAndStringTest::NameAndStringTest
    functionSourceFile: /src/raksha/src/frontends/sql/name_and_string_test.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NameAndStringTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:48,1
    - Dst: has_value
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:50,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:50,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:51,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:53,1
    - Dst: GetTextprotoFormat
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: raksha::frontends::sql::NameAndStringTest::GetTextproto
    functionSourceFile: /src/raksha/src/frontends/sql/name_and_string_test.h
    functionUses: 0
    functionsReached:
    - GetTextprotoFormat
    - has_value
    - GetParam
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string GetTextproto() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:58,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:58,1
    - Dst: raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:59,1
    - Dst: raksha::frontends::sql::NameAndStringTest::GetTextproto
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:59,1
    - Dst: raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:62,1
    - Dst: DecodeExpressionArena
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: raksha::frontends::sql::NameAndStringTest::GetDecodedValue
    functionSourceFile: /src/raksha/src/frontends/sql/name_and_string_test.h
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::NameAndStringTest::GetTextproto
    - raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
    - EXPECT_TRUE
    - google::protobuf::TextFormat::ParseFromString
    - raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
    - DecodeExpressionArena
    linkageType: ''
    returnType: ir::Value
    signature: ir::Value GetDecodedValue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: raksha::frontends::sql::NameAndStringTest::NameAndStringTest
    functionSourceFile: /src/raksha/src/frontends/sql/name_and_string_test.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NameAndStringTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:48,1
    - Dst: has_value
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:50,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:50,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:51,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:53,1
    - Dst: GetTextprotoFormat
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: raksha::frontends::sql::NameAndStringTest::GetTextproto
    functionSourceFile: /src/raksha/src/frontends/sql/name_and_string_test.h
    functionUses: 1
    functionsReached:
    - GetTextprotoFormat
    - has_value
    - GetParam
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string GetTextproto() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:58,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:58,1
    - Dst: raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:59,1
    - Dst: raksha::frontends::sql::NameAndStringTest::GetTextproto
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:59,1
    - Dst: raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:62,1
    - Dst: DecodeExpressionArena
      Src: /src/raksha/src/frontends/sql/name_and_string_test.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: raksha::frontends::sql::NameAndStringTest::GetDecodedValue
    functionSourceFile: /src/raksha/src/frontends/sql/name_and_string_test.h
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::NameAndStringTest::GetTextproto
    - raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
    - EXPECT_TRUE
    - google::protobuf::TextFormat::ParseFromString
    - raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
    - DecodeExpressionArena
    linkageType: ''
    returnType: ir::Value
    signature: ir::Value GetDecodedValue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: raksha::frontends::sql::DecodeExprDeathTest::DecodeExprDeathTest
    functionSourceFile: /src/raksha/src/frontends/sql/decode_expr_death_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecodeExprDeathTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:44,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:44,1
    - Dst: raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:45,1
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: raksha::frontends::sql::DecodeExprDeathTest::GetExprArena
    functionSourceFile: /src/raksha/src/frontends/sql/decode_expr_death_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
    - EXPECT_TRUE
    - GetParam
    - google::protobuf::TextFormat::ParseFromString
    linkageType: ''
    returnType: ExpressionArena
    signature: ExpressionArena GetExprArena()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetExprArena
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:57,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:58,1
    - Dst: raksha::frontends::sql::DecodeExpressionArena
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:58,1
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_expr_death_test.cc
    functionUses: 0
    functionsReached:
    - GetExprArena
    - EXPECT_DEATH
    - GetParam
    - raksha::frontends::sql::DecodeExpressionArena
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeExprDeathTest, DecodeExprDeathTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: raksha::frontends::sql::DecodeExprDeathTest::DecodeExprDeathTest
    functionSourceFile: /src/raksha/src/frontends/sql/decode_expr_death_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecodeExprDeathTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:44,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:44,1
    - Dst: raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:45,1
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: raksha::frontends::sql::DecodeExprDeathTest::GetExprArena
    functionSourceFile: /src/raksha/src/frontends/sql/decode_expr_death_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
    - EXPECT_TRUE
    - GetParam
    - google::protobuf::TextFormat::ParseFromString
    linkageType: ''
    returnType: ExpressionArena
    signature: ExpressionArena GetExprArena()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetExprArena
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:57,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:58,1
    - Dst: raksha::frontends::sql::DecodeExpressionArena
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:58,1
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_expr_death_test.cc
    functionUses: 0
    functionsReached:
    - GetExprArena
    - EXPECT_DEATH
    - GetParam
    - raksha::frontends::sql::DecodeExpressionArena
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeExprDeathTest, DecodeExprDeathTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: raksha::frontends::sql::DecodeExprDeathTest::DecodeExprDeathTest
    functionSourceFile: /src/raksha/src/frontends/sql/decode_expr_death_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecodeExprDeathTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:44,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:44,1
    - Dst: raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:45,1
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: raksha::frontends::sql::DecodeExprDeathTest::GetExprArena
    functionSourceFile: /src/raksha/src/frontends/sql/decode_expr_death_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
    - EXPECT_TRUE
    - GetParam
    - google::protobuf::TextFormat::ParseFromString
    linkageType: ''
    returnType: ExpressionArena
    signature: ExpressionArena GetExprArena()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetExprArena
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:57,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:58,1
    - Dst: raksha::frontends::sql::DecodeExpressionArena
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:58,1
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_expr_death_test.cc
    functionUses: 0
    functionsReached:
    - GetExprArena
    - EXPECT_DEATH
    - GetParam
    - raksha::frontends::sql::DecodeExpressionArena
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeExprDeathTest, DecodeExprDeathTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: raksha::frontends::sql::DecodeExprDeathTest::DecodeExprDeathTest
    functionSourceFile: /src/raksha/src/frontends/sql/decode_expr_death_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecodeExprDeathTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:44,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:44,1
    - Dst: raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:45,1
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: raksha::frontends::sql::DecodeExprDeathTest::GetExprArena
    functionSourceFile: /src/raksha/src/frontends/sql/decode_expr_death_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
    - EXPECT_TRUE
    - GetParam
    - google::protobuf::TextFormat::ParseFromString
    linkageType: ''
    returnType: ExpressionArena
    signature: ExpressionArena GetExprArena()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetExprArena
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:57,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:58,1
    - Dst: raksha::frontends::sql::DecodeExpressionArena
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:58,1
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_expr_death_test.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_expr_death_test.cc
    functionUses: 0
    functionsReached:
    - GetExprArena
    - EXPECT_DEATH
    - GetParam
    - raksha::frontends::sql::DecodeExpressionArena
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeExprDeathTest, DecodeExprDeathTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/driver_test.cc:33,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/frontends/sql/driver_test.cc:34,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/driver_test.cc:35,1
    - Dst: raksha::frontends::sql::verify
      Src: /src/raksha/src/frontends/sql/driver_test.cc:35,1
    - Dst: raksha::backends::policy_engine::SqlPolicyRulePolicy::SqlPolicyRulePolicy
      Src: /src/raksha/src/frontends/sql/driver_test.cc:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/driver_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - raksha::frontends::sql::verify
    - raksha::backends::policy_engine::SqlPolicyRulePolicy::SqlPolicyRulePolicy
    - google::protobuf::TextFormat::ParseFromString
    linkageType: ''
    returnType: void
    signature: void TEST(SimpleExpectedPassTest, SimpleExpectedPassTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/driver_test.cc:47,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/frontends/sql/driver_test.cc:48,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/sql/driver_test.cc:49,1
    - Dst: raksha::frontends::sql::verify
      Src: /src/raksha/src/frontends/sql/driver_test.cc:50,1
    - Dst: raksha::backends::policy_engine::SqlPolicyRulePolicy::SqlPolicyRulePolicy
      Src: /src/raksha/src/frontends/sql/driver_test.cc:51,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/driver_test.cc:54,1
    - Dst: raksha::frontends::sql::verify
      Src: /src/raksha/src/frontends/sql/driver_test.cc:54,1
    - Dst: raksha::backends::policy_engine::SqlPolicyRulePolicy::SqlPolicyRulePolicy
      Src: /src/raksha/src/frontends/sql/driver_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 56
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/driver_test.cc
    functionUses: 0
    functionsReached:
    - raksha::backends::policy_engine::SqlPolicyRulePolicy::SqlPolicyRulePolicy
    - EXPECT_TRUE
    - EXPECT_FALSE
    - google::protobuf::TextFormat::ParseFromString
    - raksha::frontends::sql::verify
    linkageType: ''
    returnType: void
    signature: void TEST(SimpleExpectedFailTest, SimpleExpectedFailTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/driver_test.cc:33,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/frontends/sql/driver_test.cc:34,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/driver_test.cc:35,1
    - Dst: raksha::frontends::sql::verify
      Src: /src/raksha/src/frontends/sql/driver_test.cc:35,1
    - Dst: raksha::backends::policy_engine::SqlPolicyRulePolicy::SqlPolicyRulePolicy
      Src: /src/raksha/src/frontends/sql/driver_test.cc:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/driver_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - raksha::frontends::sql::verify
    - raksha::backends::policy_engine::SqlPolicyRulePolicy::SqlPolicyRulePolicy
    - google::protobuf::TextFormat::ParseFromString
    linkageType: ''
    returnType: void
    signature: void TEST(SimpleExpectedPassTest, SimpleExpectedPassTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/driver_test.cc:47,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/frontends/sql/driver_test.cc:48,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/sql/driver_test.cc:49,1
    - Dst: raksha::frontends::sql::verify
      Src: /src/raksha/src/frontends/sql/driver_test.cc:50,1
    - Dst: raksha::backends::policy_engine::SqlPolicyRulePolicy::SqlPolicyRulePolicy
      Src: /src/raksha/src/frontends/sql/driver_test.cc:51,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/driver_test.cc:54,1
    - Dst: raksha::frontends::sql::verify
      Src: /src/raksha/src/frontends/sql/driver_test.cc:54,1
    - Dst: raksha::backends::policy_engine::SqlPolicyRulePolicy::SqlPolicyRulePolicy
      Src: /src/raksha/src/frontends/sql/driver_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 56
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/driver_test.cc
    functionUses: 0
    functionsReached:
    - raksha::backends::policy_engine::SqlPolicyRulePolicy::SqlPolicyRulePolicy
    - EXPECT_TRUE
    - EXPECT_FALSE
    - google::protobuf::TextFormat::ParseFromString
    - raksha::frontends::sql::verify
    linkageType: ''
    returnType: void
    signature: void TEST(SimpleExpectedFailTest, SimpleExpectedFailTest)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' action'
    argTypes:
    - SqlPolicyRule::Result::Action
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: raksha::frontends::sql::GetModifyTagKind
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc
    functionUses: 0
    functionsReached:
    - LOG
    linkageType: ''
    returnType: analysis::taint::ModifyTag::Kind
    signature: "analysis::taint::ModifyTag::Kind GetModifyTagKind(\n    const SqlPolicyRule::Result::Action&
      action)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetControlInputStartIndex
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:42,1
    - Dst: absl::c_generate
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:44,1
    - Dst: raksha::analysis::taint::InteprepretMergeIntegrityTags
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:47,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:48,1
    - Dst: AddOutputRulesForAction
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ' merge_op'
    - kind
    - action_name
    - ' rules_builder'
    argTypes:
    - sql::MergeOp
    - analysis::taint::MergeIntegrityTags::Kind
    - absl::string_view
    - InferenceRulesBuilder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 52
    functionName: raksha::frontends::sql::AddInferenceRuleForMerge
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc
    functionUses: 0
    functionsReached:
    - AddOutputRulesForAction
    - GetControlInputStartIndex
    - absl::c_generate
    - std::move
    - raksha::analysis::taint::InteprepretMergeIntegrityTags
    linkageType: ''
    returnType: void
    signature: "void AddInferenceRuleForMerge(const sql::MergeOp& merge_op,\n                              analysis::taint::MergeIntegrityTags::Kind
      kind,\n                              absl::string_view action_name,\n                              InferenceRulesBuilder&
      rules_builder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetPreconditionInputIndices
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:59,1
    - Dst: preconditions
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:60,1
    - Dst: GetOrCreateTagId
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:62,1
    - Dst: required_integrity_tag
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:62,1
    - Dst: auto::find
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:64,1
    - Dst: argument
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:64,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:65,1
    - Dst: auto::end
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:65,1
    - Dst: argument
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:66,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:68,1
    - Dst: analysis::taint::CopyInput
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:72,1
    - Dst: GetTransformedValueIndex
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:73,1
    - Dst: analysis::taint::ModifyTag
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:76,1
    - Dst: raksha::frontends::sql::GetModifyTagKind
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:77,1
    - Dst: result
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:77,1
    - Dst: GetOrCreateTagId
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:79,1
    - Dst: result
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:79,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:80,1
    - Dst: AddOutputRulesForAction
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:82,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:84,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' sql_policy_rule'
    - ' tag_transform_op'
    - action_name
    - ' rules_builder'
    argTypes:
    - SqlPolicyRule
    - TagTransformOp
    - absl::string_view
    - InferenceRulesBuilder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 85
    functionName: raksha::frontends::sql::AddInferenceRuleForTagTransform
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc
    functionUses: 0
    functionsReached:
    - analysis::taint::CopyInput
    - result
    - GetPreconditionInputIndices
    - std::vector::push_back
    - raksha::frontends::sql::GetModifyTagKind
    - AddOutputRulesForAction
    - auto::find
    - auto::end
    - preconditions
    - argument
    - GetTransformedValueIndex
    - std::move
    - required_integrity_tag
    - CHECK
    - GetOrCreateTagId
    - analysis::taint::ModifyTag
    linkageType: ''
    returnType: void
    signature: "void AddInferenceRuleForTagTransform(const SqlPolicyRule& sql_policy_rule,\n
      \                                    const TagTransformOp& tag_transform_op,\n
      \                                    absl::string_view action_name,\n                                     InferenceRulesBuilder&
      rules_builder)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' action'
    argTypes:
    - SqlPolicyRule::Result::Action
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: raksha::frontends::sql::GetModifyTagKind
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc
    functionUses: 1
    functionsReached:
    - LOG
    linkageType: ''
    returnType: analysis::taint::ModifyTag::Kind
    signature: "analysis::taint::ModifyTag::Kind GetModifyTagKind(\n    const SqlPolicyRule::Result::Action&
      action)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetControlInputStartIndex
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:42,1
    - Dst: absl::c_generate
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:44,1
    - Dst: raksha::analysis::taint::InteprepretMergeIntegrityTags
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:47,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:48,1
    - Dst: AddOutputRulesForAction
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ' merge_op'
    - kind
    - action_name
    - ' rules_builder'
    argTypes:
    - sql::MergeOp
    - analysis::taint::MergeIntegrityTags::Kind
    - absl::string_view
    - InferenceRulesBuilder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 52
    functionName: raksha::frontends::sql::AddInferenceRuleForMerge
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc
    functionUses: 0
    functionsReached:
    - AddOutputRulesForAction
    - GetControlInputStartIndex
    - absl::c_generate
    - std::move
    - raksha::analysis::taint::InteprepretMergeIntegrityTags
    linkageType: ''
    returnType: void
    signature: "void AddInferenceRuleForMerge(const sql::MergeOp& merge_op,\n                              analysis::taint::MergeIntegrityTags::Kind
      kind,\n                              absl::string_view action_name,\n                              InferenceRulesBuilder&
      rules_builder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetPreconditionInputIndices
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:59,1
    - Dst: preconditions
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:60,1
    - Dst: GetOrCreateTagId
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:62,1
    - Dst: required_integrity_tag
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:62,1
    - Dst: auto::find
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:64,1
    - Dst: argument
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:64,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:65,1
    - Dst: auto::end
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:65,1
    - Dst: argument
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:66,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:68,1
    - Dst: analysis::taint::CopyInput
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:72,1
    - Dst: GetTransformedValueIndex
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:73,1
    - Dst: analysis::taint::ModifyTag
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:76,1
    - Dst: raksha::frontends::sql::GetModifyTagKind
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:77,1
    - Dst: result
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:77,1
    - Dst: GetOrCreateTagId
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:79,1
    - Dst: result
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:79,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:80,1
    - Dst: AddOutputRulesForAction
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:82,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:84,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' sql_policy_rule'
    - ' tag_transform_op'
    - action_name
    - ' rules_builder'
    argTypes:
    - SqlPolicyRule
    - TagTransformOp
    - absl::string_view
    - InferenceRulesBuilder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 85
    functionName: raksha::frontends::sql::AddInferenceRuleForTagTransform
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc
    functionUses: 0
    functionsReached:
    - analysis::taint::CopyInput
    - result
    - GetPreconditionInputIndices
    - std::vector::push_back
    - raksha::frontends::sql::GetModifyTagKind
    - AddOutputRulesForAction
    - auto::find
    - auto::end
    - preconditions
    - argument
    - GetTransformedValueIndex
    - std::move
    - required_integrity_tag
    - CHECK
    - GetOrCreateTagId
    - analysis::taint::ModifyTag
    linkageType: ''
    returnType: void
    signature: "void AddInferenceRuleForTagTransform(const SqlPolicyRule& sql_policy_rule,\n
      \                                    const TagTransformOp& tag_transform_op,\n
      \                                    absl::string_view action_name,\n                                     InferenceRulesBuilder&
      rules_builder)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sql_policy_rules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:94,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:96,1
    - Dst: name
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:96,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:97,1
    - Dst: name
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:98,1
    - Dst: blocks
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:108,1
    - Dst: operations
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:109,1
    - Dst: SqlOp::GetIf<TagTransformOp>
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:110,1
    - Dst: auto*::GetRuleName
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:113,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:114,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:119,1
    - Dst: auto*::inputs
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:119,1
    - Dst: auto*::GetTransformedValue
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:129,1
    - Dst: ir::Value::If
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:130,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:131,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:134,1
    - Dst: auto::operation
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:134,1
    - Dst: SqlOp::GetIf<MergeOp>
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:136,1
    - Dst: auto::operation
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:136,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:137,1
    - Dst: raksha::frontends::sql::AddInferenceRuleForMerge
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:144,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:147,1
    - Dst: absl::flat_hash_map::find
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:149,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:150,1
    - Dst: absl::flat_hash_map::end
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:150,1
    - Dst: raksha::frontends::sql::AddInferenceRuleForTagTransform
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:154,1
    - Dst: InferenceRulesBuilder::Build
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:159,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - ' expr'
    - ' module'
    - seed_tags
    argTypes:
    - ExpressionArena
    - ir::Module
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 160
    functionName: raksha::frontends::sql::DecodeSqlPolicyRules
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc
    functionUses: 4
    functionsReached:
    - name
    - auto*::GetRuleName
    - InferenceRulesBuilder::MarkOperationAsAction
    - absl::flat_hash_map::end
    - raksha::frontends::sql::AddInferenceRuleForMerge
    - absl::flat_hash_map::find
    - auto*::GetTransformedValue
    - blocks
    - InferenceRulesBuilder::Build
    - SqlOp::GetIf<MergeOp>
    - auto*::inputs
    - SqlOp::GetIf<TagTransformOp>
    - ir::Value::If
    - absl::StrCat
    - sql_policy_rules
    - absl::flat_hash_map::insert
    - operations
    - auto::operation
    - raksha::frontends::sql::AddInferenceRuleForTagTransform
    - CHECK
    linkageType: ''
    returnType: InferenceRules
    signature: "InferenceRules DecodeSqlPolicyRules(const ExpressionArena& expr,\n
      \                                   const ir::Module& module,\n                                    std::vector<std::string>
      seed_tags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' action'
    argTypes:
    - SqlPolicyRule::Result::Action
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: raksha::frontends::sql::GetModifyTagKind
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc
    functionUses: 2
    functionsReached:
    - LOG
    linkageType: ''
    returnType: analysis::taint::ModifyTag::Kind
    signature: "analysis::taint::ModifyTag::Kind GetModifyTagKind(\n    const SqlPolicyRule::Result::Action&
      action)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetControlInputStartIndex
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:42,1
    - Dst: absl::c_generate
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:44,1
    - Dst: raksha::analysis::taint::InteprepretMergeIntegrityTags
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:47,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:48,1
    - Dst: AddOutputRulesForAction
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ' merge_op'
    - kind
    - action_name
    - ' rules_builder'
    argTypes:
    - sql::MergeOp
    - analysis::taint::MergeIntegrityTags::Kind
    - absl::string_view
    - InferenceRulesBuilder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 52
    functionName: raksha::frontends::sql::AddInferenceRuleForMerge
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc
    functionUses: 1
    functionsReached:
    - AddOutputRulesForAction
    - GetControlInputStartIndex
    - absl::c_generate
    - std::move
    - raksha::analysis::taint::InteprepretMergeIntegrityTags
    linkageType: ''
    returnType: void
    signature: "void AddInferenceRuleForMerge(const sql::MergeOp& merge_op,\n                              analysis::taint::MergeIntegrityTags::Kind
      kind,\n                              absl::string_view action_name,\n                              InferenceRulesBuilder&
      rules_builder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetPreconditionInputIndices
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:59,1
    - Dst: preconditions
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:60,1
    - Dst: GetOrCreateTagId
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:62,1
    - Dst: required_integrity_tag
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:62,1
    - Dst: auto::find
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:64,1
    - Dst: argument
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:64,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:65,1
    - Dst: auto::end
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:65,1
    - Dst: argument
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:66,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:68,1
    - Dst: analysis::taint::CopyInput
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:72,1
    - Dst: GetTransformedValueIndex
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:73,1
    - Dst: analysis::taint::ModifyTag
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:76,1
    - Dst: raksha::frontends::sql::GetModifyTagKind
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:77,1
    - Dst: result
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:77,1
    - Dst: GetOrCreateTagId
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:79,1
    - Dst: result
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:79,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:80,1
    - Dst: AddOutputRulesForAction
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:82,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:84,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' sql_policy_rule'
    - ' tag_transform_op'
    - action_name
    - ' rules_builder'
    argTypes:
    - SqlPolicyRule
    - TagTransformOp
    - absl::string_view
    - InferenceRulesBuilder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 85
    functionName: raksha::frontends::sql::AddInferenceRuleForTagTransform
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc
    functionUses: 1
    functionsReached:
    - analysis::taint::CopyInput
    - result
    - GetPreconditionInputIndices
    - std::vector::push_back
    - raksha::frontends::sql::GetModifyTagKind
    - AddOutputRulesForAction
    - auto::find
    - auto::end
    - preconditions
    - argument
    - GetTransformedValueIndex
    - std::move
    - required_integrity_tag
    - CHECK
    - GetOrCreateTagId
    - analysis::taint::ModifyTag
    linkageType: ''
    returnType: void
    signature: "void AddInferenceRuleForTagTransform(const SqlPolicyRule& sql_policy_rule,\n
      \                                    const TagTransformOp& tag_transform_op,\n
      \                                    absl::string_view action_name,\n                                     InferenceRulesBuilder&
      rules_builder)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' action'
    argTypes:
    - SqlPolicyRule::Result::Action
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: raksha::frontends::sql::GetModifyTagKind
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc
    functionUses: 3
    functionsReached:
    - LOG
    linkageType: ''
    returnType: analysis::taint::ModifyTag::Kind
    signature: "analysis::taint::ModifyTag::Kind GetModifyTagKind(\n    const SqlPolicyRule::Result::Action&
      action)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetControlInputStartIndex
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:42,1
    - Dst: absl::c_generate
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:44,1
    - Dst: raksha::analysis::taint::InteprepretMergeIntegrityTags
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:47,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:48,1
    - Dst: AddOutputRulesForAction
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ' merge_op'
    - kind
    - action_name
    - ' rules_builder'
    argTypes:
    - sql::MergeOp
    - analysis::taint::MergeIntegrityTags::Kind
    - absl::string_view
    - InferenceRulesBuilder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 52
    functionName: raksha::frontends::sql::AddInferenceRuleForMerge
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc
    functionUses: 1
    functionsReached:
    - AddOutputRulesForAction
    - GetControlInputStartIndex
    - absl::c_generate
    - std::move
    - raksha::analysis::taint::InteprepretMergeIntegrityTags
    linkageType: ''
    returnType: void
    signature: "void AddInferenceRuleForMerge(const sql::MergeOp& merge_op,\n                              analysis::taint::MergeIntegrityTags::Kind
      kind,\n                              absl::string_view action_name,\n                              InferenceRulesBuilder&
      rules_builder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetPreconditionInputIndices
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:59,1
    - Dst: preconditions
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:60,1
    - Dst: GetOrCreateTagId
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:62,1
    - Dst: required_integrity_tag
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:62,1
    - Dst: auto::find
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:64,1
    - Dst: argument
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:64,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:65,1
    - Dst: auto::end
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:65,1
    - Dst: argument
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:66,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:68,1
    - Dst: analysis::taint::CopyInput
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:72,1
    - Dst: GetTransformedValueIndex
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:73,1
    - Dst: analysis::taint::ModifyTag
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:76,1
    - Dst: raksha::frontends::sql::GetModifyTagKind
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:77,1
    - Dst: result
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:77,1
    - Dst: GetOrCreateTagId
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:79,1
    - Dst: result
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:79,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:80,1
    - Dst: AddOutputRulesForAction
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:82,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:84,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ' sql_policy_rule'
    - ' tag_transform_op'
    - action_name
    - ' rules_builder'
    argTypes:
    - SqlPolicyRule
    - TagTransformOp
    - absl::string_view
    - InferenceRulesBuilder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 85
    functionName: raksha::frontends::sql::AddInferenceRuleForTagTransform
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc
    functionUses: 1
    functionsReached:
    - analysis::taint::CopyInput
    - result
    - GetPreconditionInputIndices
    - std::vector::push_back
    - raksha::frontends::sql::GetModifyTagKind
    - AddOutputRulesForAction
    - auto::find
    - auto::end
    - preconditions
    - argument
    - GetTransformedValueIndex
    - std::move
    - required_integrity_tag
    - CHECK
    - GetOrCreateTagId
    - analysis::taint::ModifyTag
    linkageType: ''
    returnType: void
    signature: "void AddInferenceRuleForTagTransform(const SqlPolicyRule& sql_policy_rule,\n
      \                                    const TagTransformOp& tag_transform_op,\n
      \                                    absl::string_view action_name,\n                                     InferenceRulesBuilder&
      rules_builder)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sql_policy_rules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:94,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:96,1
    - Dst: name
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:96,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:97,1
    - Dst: name
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:98,1
    - Dst: blocks
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:108,1
    - Dst: operations
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:109,1
    - Dst: SqlOp::GetIf<TagTransformOp>
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:110,1
    - Dst: auto*::GetRuleName
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:113,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:114,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:119,1
    - Dst: auto*::inputs
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:119,1
    - Dst: auto*::GetTransformedValue
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:129,1
    - Dst: ir::Value::If
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:130,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:131,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:134,1
    - Dst: auto::operation
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:134,1
    - Dst: SqlOp::GetIf<MergeOp>
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:136,1
    - Dst: auto::operation
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:136,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:137,1
    - Dst: raksha::frontends::sql::AddInferenceRuleForMerge
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:144,1
    - Dst: InferenceRulesBuilder::MarkOperationAsAction
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:147,1
    - Dst: absl::flat_hash_map::find
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:149,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:150,1
    - Dst: absl::flat_hash_map::end
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:150,1
    - Dst: raksha::frontends::sql::AddInferenceRuleForTagTransform
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:154,1
    - Dst: InferenceRulesBuilder::Build
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc:159,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - ' expr'
    - ' module'
    - seed_tags
    argTypes:
    - ExpressionArena
    - ir::Module
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 160
    functionName: raksha::frontends::sql::DecodeSqlPolicyRules
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc
    functionUses: 4
    functionsReached:
    - name
    - auto*::GetRuleName
    - InferenceRulesBuilder::MarkOperationAsAction
    - absl::flat_hash_map::end
    - raksha::frontends::sql::AddInferenceRuleForMerge
    - absl::flat_hash_map::find
    - auto*::GetTransformedValue
    - blocks
    - InferenceRulesBuilder::Build
    - SqlOp::GetIf<MergeOp>
    - auto*::inputs
    - SqlOp::GetIf<TagTransformOp>
    - ir::Value::If
    - absl::StrCat
    - sql_policy_rules
    - absl::flat_hash_map::insert
    - operations
    - auto::operation
    - raksha::frontends::sql::AddInferenceRuleForTagTransform
    - CHECK
    linkageType: ''
    returnType: InferenceRules
    signature: "InferenceRules DecodeSqlPolicyRules(const ExpressionArena& expr,\n
      \                                   const ir::Module& module,\n                                    std::vector<std::string>
      seed_tags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::ParsedFormat<'s', 's'>
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: raksha::frontends::sql::DecodeSourceTableColumnExprTest::GetTextprotoFormat
    functionSourceFile: /src/raksha/src/frontends/sql/decode_source_column_test.cc
    functionUses: 0
    functionsReached:
    - absl::ParsedFormat<'s', 's'>
    linkageType: ''
    returnType: absl::ParsedFormat<'s', 's'>
    signature: absl::ParsedFormat<'s', 's'> GetTextprotoFormat() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:53,1
    - Dst: GetDecodedValue
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:54,1
    - Dst: Value::If
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:55,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:56,1
    - Dst: NotNull
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:56,1
    - Dst: StoredValue*::storage
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:58,1
    - Dst: Storage::name
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:59,1
    - Dst: Storage::type
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_source_column_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - StoredValue*::storage
    - NotNull
    - Storage::name
    - EXPECT_THAT
    - Value::If
    - GetDecodedValue
    - Storage::type
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeSourceTableColumnExprTest, DecodeSourceTableColumnExprTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::ParsedFormat<'s', 's'>
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: raksha::frontends::sql::DecodeSourceTableColumnExprTest::GetTextprotoFormat
    functionSourceFile: /src/raksha/src/frontends/sql/decode_source_column_test.cc
    functionUses: 0
    functionsReached:
    - absl::ParsedFormat<'s', 's'>
    linkageType: ''
    returnType: absl::ParsedFormat<'s', 's'>
    signature: absl::ParsedFormat<'s', 's'> GetTextprotoFormat() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:53,1
    - Dst: GetDecodedValue
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:54,1
    - Dst: Value::If
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:55,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:56,1
    - Dst: NotNull
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:56,1
    - Dst: StoredValue*::storage
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:58,1
    - Dst: Storage::name
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:59,1
    - Dst: Storage::type
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_source_column_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - StoredValue*::storage
    - NotNull
    - Storage::name
    - EXPECT_THAT
    - Value::If
    - GetDecodedValue
    - Storage::type
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeSourceTableColumnExprTest, DecodeSourceTableColumnExprTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::ParsedFormat<'s', 's'>
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: raksha::frontends::sql::DecodeSourceTableColumnExprTest::GetTextprotoFormat
    functionSourceFile: /src/raksha/src/frontends/sql/decode_source_column_test.cc
    functionUses: 0
    functionsReached:
    - absl::ParsedFormat<'s', 's'>
    linkageType: ''
    returnType: absl::ParsedFormat<'s', 's'>
    signature: absl::ParsedFormat<'s', 's'> GetTextprotoFormat() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:53,1
    - Dst: GetDecodedValue
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:54,1
    - Dst: Value::If
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:55,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:56,1
    - Dst: NotNull
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:56,1
    - Dst: StoredValue*::storage
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:58,1
    - Dst: Storage::name
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:59,1
    - Dst: Storage::type
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_source_column_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - StoredValue*::storage
    - NotNull
    - Storage::name
    - EXPECT_THAT
    - Value::If
    - GetDecodedValue
    - Storage::type
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeSourceTableColumnExprTest, DecodeSourceTableColumnExprTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::ParsedFormat<'s', 's'>
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: raksha::frontends::sql::DecodeSourceTableColumnExprTest::GetTextprotoFormat
    functionSourceFile: /src/raksha/src/frontends/sql/decode_source_column_test.cc
    functionUses: 0
    functionsReached:
    - absl::ParsedFormat<'s', 's'>
    linkageType: ''
    returnType: absl::ParsedFormat<'s', 's'>
    signature: absl::ParsedFormat<'s', 's'> GetTextprotoFormat() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:53,1
    - Dst: GetDecodedValue
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:54,1
    - Dst: Value::If
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:55,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:56,1
    - Dst: NotNull
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:56,1
    - Dst: StoredValue*::storage
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:58,1
    - Dst: Storage::name
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:59,1
    - Dst: Storage::type
      Src: /src/raksha/src/frontends/sql/decode_source_column_test.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_source_column_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - StoredValue*::storage
    - NotNull
    - Storage::name
    - EXPECT_THAT
    - Value::If
    - GetDecodedValue
    - Storage::type
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeSourceTableColumnExprTest, DecodeSourceTableColumnExprTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:60,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:64,1
    - Dst: at
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:65,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:66,1
    - Dst: at
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:67,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:68,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:70,1
    - Dst: raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:73,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:74,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:75,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:77,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:79,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:87,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:88,1
    - Dst: raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:89,1
    - Dst: raksha::frontends::sql::DecodeExpressionArena
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:90,1
    - Dst: SqlOp::GetIf<TagTransformOp>
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:93,1
    - Dst: UnwrapDefaultOperationResult
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:93,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:95,1
    - Dst: TagTransformOp*::GetRuleName
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:95,1
    - Dst: utils::MapIter<std::pair<std::string, Value>>
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:101,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:103,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:104,1
    - Dst: DecoderContext::GetValue
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:105,1
    - Dst: absl::flat_hash_map<std::string, Value>
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:107,1
    - Dst: auto::begin
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:108,1
    - Dst: auto::end
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:108,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:109,1
    - Dst: TagTransformOp*::GetPreconditions
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:109,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 111
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc
    functionUses: 0
    functionsReached:
    - UnwrapDefaultOperationResult
    - std::vector::push_back
    - absl::StrAppend
    - raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
    - EXPECT_THAT
    - EXPECT_EQ
    - absl::flat_hash_map<std::string, Value>
    - auto::end
    - EXPECT_TRUE
    - TagTransformOp*::GetPreconditions
    - GetParam
    - UnorderedElementsAreArray
    - raksha::frontends::sql::DecodeExpressionArena
    - DecoderContext::GetValue
    - SqlOp::GetIf<TagTransformOp>
    - at
    - ASSERT_NE
    - auto::begin
    - absl::StrFormat
    - utils::MapIter<std::pair<std::string, Value>>
    - absl::flat_hash_map::insert
    - std::make_pair
    - absl::StrJoin
    - google::protobuf::TextFormat::ParseFromString
    - raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
    - TagTransformOp*::GetRuleName
    - size
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeTagTransformTest, DecodeTagTransformTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:60,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:64,1
    - Dst: at
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:65,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:66,1
    - Dst: at
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:67,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:68,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:70,1
    - Dst: raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:73,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:74,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:75,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:77,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:79,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:87,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:88,1
    - Dst: raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:89,1
    - Dst: raksha::frontends::sql::DecodeExpressionArena
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:90,1
    - Dst: SqlOp::GetIf<TagTransformOp>
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:93,1
    - Dst: UnwrapDefaultOperationResult
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:93,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:95,1
    - Dst: TagTransformOp*::GetRuleName
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:95,1
    - Dst: utils::MapIter<std::pair<std::string, Value>>
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:101,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:103,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:104,1
    - Dst: DecoderContext::GetValue
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:105,1
    - Dst: absl::flat_hash_map<std::string, Value>
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:107,1
    - Dst: auto::begin
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:108,1
    - Dst: auto::end
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:108,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:109,1
    - Dst: TagTransformOp*::GetPreconditions
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:109,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 111
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc
    functionUses: 0
    functionsReached:
    - UnwrapDefaultOperationResult
    - std::vector::push_back
    - absl::StrAppend
    - raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
    - EXPECT_THAT
    - EXPECT_EQ
    - absl::flat_hash_map<std::string, Value>
    - auto::end
    - EXPECT_TRUE
    - TagTransformOp*::GetPreconditions
    - GetParam
    - UnorderedElementsAreArray
    - raksha::frontends::sql::DecodeExpressionArena
    - DecoderContext::GetValue
    - SqlOp::GetIf<TagTransformOp>
    - at
    - ASSERT_NE
    - auto::begin
    - absl::StrFormat
    - utils::MapIter<std::pair<std::string, Value>>
    - absl::flat_hash_map::insert
    - std::make_pair
    - absl::StrJoin
    - google::protobuf::TextFormat::ParseFromString
    - raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
    - TagTransformOp*::GetRuleName
    - size
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeTagTransformTest, DecodeTagTransformTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:60,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:64,1
    - Dst: at
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:65,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:66,1
    - Dst: at
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:67,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:68,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:70,1
    - Dst: raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:73,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:74,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:75,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:77,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:79,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:87,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:88,1
    - Dst: raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:89,1
    - Dst: raksha::frontends::sql::DecodeExpressionArena
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:90,1
    - Dst: SqlOp::GetIf<TagTransformOp>
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:93,1
    - Dst: UnwrapDefaultOperationResult
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:93,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:95,1
    - Dst: TagTransformOp*::GetRuleName
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:95,1
    - Dst: utils::MapIter<std::pair<std::string, Value>>
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:101,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:103,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:104,1
    - Dst: DecoderContext::GetValue
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:105,1
    - Dst: absl::flat_hash_map<std::string, Value>
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:107,1
    - Dst: auto::begin
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:108,1
    - Dst: auto::end
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:108,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:109,1
    - Dst: TagTransformOp*::GetPreconditions
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:109,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 111
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc
    functionUses: 0
    functionsReached:
    - UnwrapDefaultOperationResult
    - std::vector::push_back
    - absl::StrAppend
    - raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
    - EXPECT_THAT
    - EXPECT_EQ
    - absl::flat_hash_map<std::string, Value>
    - auto::end
    - EXPECT_TRUE
    - TagTransformOp*::GetPreconditions
    - GetParam
    - UnorderedElementsAreArray
    - raksha::frontends::sql::DecodeExpressionArena
    - DecoderContext::GetValue
    - SqlOp::GetIf<TagTransformOp>
    - at
    - ASSERT_NE
    - auto::begin
    - absl::StrFormat
    - utils::MapIter<std::pair<std::string, Value>>
    - absl::flat_hash_map::insert
    - std::make_pair
    - absl::StrJoin
    - google::protobuf::TextFormat::ParseFromString
    - raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
    - TagTransformOp*::GetRuleName
    - size
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeTagTransformTest, DecodeTagTransformTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:60,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:64,1
    - Dst: at
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:65,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:66,1
    - Dst: at
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:67,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:68,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:70,1
    - Dst: raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:73,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:74,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:75,1
    - Dst: absl::StrAppend
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:77,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:79,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:87,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:88,1
    - Dst: raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:89,1
    - Dst: raksha::frontends::sql::DecodeExpressionArena
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:90,1
    - Dst: SqlOp::GetIf<TagTransformOp>
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:93,1
    - Dst: UnwrapDefaultOperationResult
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:93,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:95,1
    - Dst: TagTransformOp*::GetRuleName
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:95,1
    - Dst: utils::MapIter<std::pair<std::string, Value>>
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:101,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:103,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:104,1
    - Dst: DecoderContext::GetValue
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:105,1
    - Dst: absl::flat_hash_map<std::string, Value>
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:107,1
    - Dst: auto::begin
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:108,1
    - Dst: auto::end
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:108,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:109,1
    - Dst: TagTransformOp*::GetPreconditions
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:109,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 111
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc
    functionUses: 0
    functionsReached:
    - UnwrapDefaultOperationResult
    - std::vector::push_back
    - absl::StrAppend
    - raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
    - EXPECT_THAT
    - EXPECT_EQ
    - absl::flat_hash_map<std::string, Value>
    - auto::end
    - EXPECT_TRUE
    - TagTransformOp*::GetPreconditions
    - GetParam
    - UnorderedElementsAreArray
    - raksha::frontends::sql::DecodeExpressionArena
    - DecoderContext::GetValue
    - SqlOp::GetIf<TagTransformOp>
    - at
    - ASSERT_NE
    - auto::begin
    - absl::StrFormat
    - utils::MapIter<std::pair<std::string, Value>>
    - absl::flat_hash_map::insert
    - std::make_pair
    - absl::StrJoin
    - google::protobuf::TextFormat::ParseFromString
    - raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
    - TagTransformOp*::GetRuleName
    - size
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeTagTransformTest, DecodeTagTransformTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::DecoderContext::WrapOperationResultValue
      Src: /src/raksha/src/frontends/sql/decode.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - operation
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: raksha::frontends::sql::WrapOperationResultValue
    functionSourceFile: /src/raksha/src/frontends/sql/decode.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::DecoderContext::WrapOperationResultValue
    linkageType: ''
    returnType: Value
    signature: Value WrapOperationResultValue(const Operation &operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SourceTableColumn::column_path
      Src: /src/raksha/src/frontends/sql/decode.cc:36,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode.cc:37,1
    - Dst: std::string::empty
      Src: /src/raksha/src/frontends/sql/decode.cc:37,1
    - Dst: Value
      Src: /src/raksha/src/frontends/sql/decode.cc:46,1
    - Dst: StoredValue
      Src: /src/raksha/src/frontends/sql/decode.cc:46,1
    - Dst: DecoderContext::GetOrCreateStorage
      Src: /src/raksha/src/frontends/sql/decode.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - source_table_column
    - decoder_context
    argTypes:
    - SourceTableColumn
    - DecoderContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 47
    functionName: raksha::frontends::sql::DecodeSourceTableColumn
    functionSourceFile: /src/raksha/src/frontends/sql/decode.cc
    functionUses: 0
    functionsReached:
    - Value
    - SourceTableColumn::column_path
    - DecoderContext::GetOrCreateStorage
    - CHECK
    - std::string::empty
    - StoredValue
    linkageType: ''
    returnType: Value
    signature: "Value DecodeSourceTableColumn(\n    const SourceTableColumn &source_table_column,\n
      \   DecoderContext &decoder_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Literal::literal_str
      Src: /src/raksha/src/frontends/sql/decode.cc:51,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode.cc:52,1
    - Dst: absl::string_view::empty
      Src: /src/raksha/src/frontends/sql/decode.cc:52,1
    - Dst: raksha::frontends::sql::WrapOperationResultValue
      Src: /src/raksha/src/frontends/sql/decode.cc:53,1
    - Dst: DecoderContext::MakeLiteralOperation
      Src: /src/raksha/src/frontends/sql/decode.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - literal
    - decoder_context
    argTypes:
    - Literal
    - DecoderContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: raksha::frontends::sql::DecodeLiteral
    functionSourceFile: /src/raksha/src/frontends/sql/decode.cc
    functionUses: 0
    functionsReached:
    - DecoderContext::MakeLiteralOperation
    - absl::string_view::empty
    - raksha::frontends::sql::WrapOperationResultValue
    - Literal::literal_str
    - CHECK
    linkageType: ''
    returnType: Value
    signature: "Value DecodeLiteral(const Literal &literal,\n                           DecoderContext
      &decoder_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode.cc:62,1
    - Dst: MergeOperation::inputs_size
      Src: /src/raksha/src/frontends/sql/decode.cc:62,1
    - Dst: MergeOperation::inputs
      Src: /src/raksha/src/frontends/sql/decode.cc:65,1
    - Dst: MergeOperation::control_inputs
      Src: /src/raksha/src/frontends/sql/decode.cc:66,1
    - Dst: raksha::frontends::sql::WrapOperationResultValue
      Src: /src/raksha/src/frontends/sql/decode.cc:67,1
    - Dst: DecoderContext::MakeMergeOperation
      Src: /src/raksha/src/frontends/sql/decode.cc:67,1
    - Dst: std::vector<uint64_t>
      Src: /src/raksha/src/frontends/sql/decode.cc:68,1
    - Dst: auto::begin
      Src: /src/raksha/src/frontends/sql/decode.cc:68,1
    - Dst: auto::end
      Src: /src/raksha/src/frontends/sql/decode.cc:68,1
    - Dst: std::vector<uint64_t>
      Src: /src/raksha/src/frontends/sql/decode.cc:69,1
    - Dst: auto::begin
      Src: /src/raksha/src/frontends/sql/decode.cc:69,1
    - Dst: auto::end
      Src: /src/raksha/src/frontends/sql/decode.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - merge_operation
    - decoder_context
    argTypes:
    - MergeOperation
    - DecoderContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: raksha::frontends::sql::DecodeMergeOperation
    functionSourceFile: /src/raksha/src/frontends/sql/decode.cc
    functionUses: 0
    functionsReached:
    - MergeOperation::inputs
    - auto::end
    - MergeOperation::inputs_size
    - raksha::frontends::sql::WrapOperationResultValue
    - MergeOperation::control_inputs
    - CHECK
    - DecoderContext::MakeMergeOperation
    - auto::begin
    - std::vector<uint64_t>
    linkageType: ''
    returnType: Value
    signature: "Value DecodeMergeOperation(const MergeOperation &merge_operation,\n
      \                                 DecoderContext &decoder_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TagTransform::transformed_node
      Src: /src/raksha/src/frontends/sql/decode.cc:74,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode.cc:75,1
    - Dst: TagTransform::transform_rule_name
      Src: /src/raksha/src/frontends/sql/decode.cc:77,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode.cc:78,1
    - Dst: std::string::empty
      Src: /src/raksha/src/frontends/sql/decode.cc:78,1
    - Dst: TagTransform::tag_preconditions
      Src: /src/raksha/src/frontends/sql/decode.cc:81,1
    - Dst: TagTransform::tag_preconditions
      Src: /src/raksha/src/frontends/sql/decode.cc:82,1
    - Dst: raksha::frontends::sql::WrapOperationResultValue
      Src: /src/raksha/src/frontends/sql/decode.cc:83,1
    - Dst: DecoderContext::MakeTagTransformOperation
      Src: /src/raksha/src/frontends/sql/decode.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tag_transform
    - decoder_context
    argTypes:
    - TagTransform
    - DecoderContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 85
    functionName: raksha::frontends::sql::DecodeTagTransform
    functionSourceFile: /src/raksha/src/frontends/sql/decode.cc
    functionUses: 0
    functionsReached:
    - DecoderContext::MakeTagTransformOperation
    - TagTransform::transformed_node
    - TagTransform::tag_preconditions
    - raksha::frontends::sql::WrapOperationResultValue
    - TagTransform::transform_rule_name
    - CHECK
    - std::string::empty
    linkageType: ''
    returnType: Value
    signature: "Value DecodeTagTransform(const TagTransform &tag_transform,\n                                DecoderContext
      &decoder_context)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Expression::expr_variant_case
      Src: /src/raksha/src/frontends/sql/decode.cc:90,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode.cc:92,1
    - Dst: raksha::frontends::sql::DecodeSourceTableColumn
      Src: /src/raksha/src/frontends/sql/decode.cc:95,1
    - Dst: Expression::source_table_column
      Src: /src/raksha/src/frontends/sql/decode.cc:95,1
    - Dst: raksha::frontends::sql::DecodeLiteral
      Src: /src/raksha/src/frontends/sql/decode.cc:99,1
    - Dst: Expression::literal
      Src: /src/raksha/src/frontends/sql/decode.cc:99,1
    - Dst: raksha::frontends::sql::DecodeMergeOperation
      Src: /src/raksha/src/frontends/sql/decode.cc:102,1
    - Dst: Expression::merge_operation
      Src: /src/raksha/src/frontends/sql/decode.cc:102,1
    - Dst: raksha::frontends::sql::DecodeTagTransform
      Src: /src/raksha/src/frontends/sql/decode.cc:105,1
    - Dst: Expression::tag_transform
      Src: /src/raksha/src/frontends/sql/decode.cc:105,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode.cc:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - expr
    - decoder_context
    argTypes:
    - Expression
    - DecoderContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 110
    functionName: raksha::frontends::sql::DecodeExpression
    functionSourceFile: /src/raksha/src/frontends/sql/decode.cc
    functionUses: 0
    functionsReached:
    - Expression::literal
    - raksha::frontends::sql::DecodeLiteral
    - raksha::frontends::sql::DecodeTagTransform
    - Expression::tag_transform
    - Expression::source_table_column
    - CHECK
    - Expression::expr_variant_case
    - Expression::merge_operation
    - raksha::frontends::sql::DecodeMergeOperation
    - raksha::frontends::sql::DecodeSourceTableColumn
    linkageType: ''
    returnType: Value
    signature: "Value DecodeExpression(const Expression &expr,\n                              DecoderContext
      &decoder_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpressionArena::id_expression_pairs
      Src: /src/raksha/src/frontends/sql/decode.cc:117,1
    - Dst: raksha::frontends::sql::DecodeExpression
      Src: /src/raksha/src/frontends/sql/decode.cc:118,1
    - Dst: expression
      Src: /src/raksha/src/frontends/sql/decode.cc:118,1
    - Dst: DecoderContext::RegisterValue
      Src: /src/raksha/src/frontends/sql/decode.cc:119,1
    - Dst: id
      Src: /src/raksha/src/frontends/sql/decode.cc:119,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode.cc:122,1
    - Dst: std::optional::has_value
      Src: /src/raksha/src/frontends/sql/decode.cc:122,1
    - Dst: raksha::frontends::sql::WrapOperationResultValue
      Src: /src/raksha/src/frontends/sql/decode.cc:124,1
    - Dst: DecoderContext::MakeSqlOutputOperation
      Src: /src/raksha/src/frontends/sql/decode.cc:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - expr_arena
    - decoder_context
    argTypes:
    - ExpressionArena
    - DecoderContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 113
    functionDepth: 4
    functionLinenumber: 113
    functionLinenumberEnd: 126
    functionName: raksha::frontends::sql::DecodeExpressionArena
    functionSourceFile: /src/raksha/src/frontends/sql/decode.cc
    functionUses: 8
    functionsReached:
    - raksha::frontends::sql::DecodeExpression
    - DecoderContext::RegisterValue
    - raksha::frontends::sql::WrapOperationResultValue
    - DecoderContext::MakeSqlOutputOperation
    - std::optional::has_value
    - id
    - expression
    - CHECK
    - ExpressionArena::id_expression_pairs
    linkageType: ''
    returnType: Value
    signature: "Value DecodeExpressionArena(const ExpressionArena &expr_arena,\n                            DecoderContext
      &decoder_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::DecoderContext::WrapOperationResultValue
      Src: /src/raksha/src/frontends/sql/decode.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - operation
    argTypes:
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: raksha::frontends::sql::WrapOperationResultValue
    functionSourceFile: /src/raksha/src/frontends/sql/decode.cc
    functionUses: 4
    functionsReached:
    - raksha::frontends::sql::DecoderContext::WrapOperationResultValue
    linkageType: ''
    returnType: Value
    signature: Value WrapOperationResultValue(const Operation &operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SourceTableColumn::column_path
      Src: /src/raksha/src/frontends/sql/decode.cc:36,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode.cc:37,1
    - Dst: std::string::empty
      Src: /src/raksha/src/frontends/sql/decode.cc:37,1
    - Dst: Value
      Src: /src/raksha/src/frontends/sql/decode.cc:46,1
    - Dst: StoredValue
      Src: /src/raksha/src/frontends/sql/decode.cc:46,1
    - Dst: DecoderContext::GetOrCreateStorage
      Src: /src/raksha/src/frontends/sql/decode.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - source_table_column
    - decoder_context
    argTypes:
    - SourceTableColumn
    - DecoderContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 47
    functionName: raksha::frontends::sql::DecodeSourceTableColumn
    functionSourceFile: /src/raksha/src/frontends/sql/decode.cc
    functionUses: 1
    functionsReached:
    - Value
    - SourceTableColumn::column_path
    - DecoderContext::GetOrCreateStorage
    - CHECK
    - std::string::empty
    - StoredValue
    linkageType: ''
    returnType: Value
    signature: "Value DecodeSourceTableColumn(\n    const SourceTableColumn &source_table_column,\n
      \   DecoderContext &decoder_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Literal::literal_str
      Src: /src/raksha/src/frontends/sql/decode.cc:51,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode.cc:52,1
    - Dst: absl::string_view::empty
      Src: /src/raksha/src/frontends/sql/decode.cc:52,1
    - Dst: raksha::frontends::sql::WrapOperationResultValue
      Src: /src/raksha/src/frontends/sql/decode.cc:53,1
    - Dst: DecoderContext::MakeLiteralOperation
      Src: /src/raksha/src/frontends/sql/decode.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - literal
    - decoder_context
    argTypes:
    - Literal
    - DecoderContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: raksha::frontends::sql::DecodeLiteral
    functionSourceFile: /src/raksha/src/frontends/sql/decode.cc
    functionUses: 1
    functionsReached:
    - DecoderContext::MakeLiteralOperation
    - absl::string_view::empty
    - raksha::frontends::sql::WrapOperationResultValue
    - Literal::literal_str
    - CHECK
    linkageType: ''
    returnType: Value
    signature: "Value DecodeLiteral(const Literal &literal,\n                           DecoderContext
      &decoder_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode.cc:62,1
    - Dst: MergeOperation::inputs_size
      Src: /src/raksha/src/frontends/sql/decode.cc:62,1
    - Dst: MergeOperation::inputs
      Src: /src/raksha/src/frontends/sql/decode.cc:65,1
    - Dst: MergeOperation::control_inputs
      Src: /src/raksha/src/frontends/sql/decode.cc:66,1
    - Dst: raksha::frontends::sql::WrapOperationResultValue
      Src: /src/raksha/src/frontends/sql/decode.cc:67,1
    - Dst: DecoderContext::MakeMergeOperation
      Src: /src/raksha/src/frontends/sql/decode.cc:67,1
    - Dst: std::vector<uint64_t>
      Src: /src/raksha/src/frontends/sql/decode.cc:68,1
    - Dst: auto::begin
      Src: /src/raksha/src/frontends/sql/decode.cc:68,1
    - Dst: auto::end
      Src: /src/raksha/src/frontends/sql/decode.cc:68,1
    - Dst: std::vector<uint64_t>
      Src: /src/raksha/src/frontends/sql/decode.cc:69,1
    - Dst: auto::begin
      Src: /src/raksha/src/frontends/sql/decode.cc:69,1
    - Dst: auto::end
      Src: /src/raksha/src/frontends/sql/decode.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - merge_operation
    - decoder_context
    argTypes:
    - MergeOperation
    - DecoderContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: raksha::frontends::sql::DecodeMergeOperation
    functionSourceFile: /src/raksha/src/frontends/sql/decode.cc
    functionUses: 1
    functionsReached:
    - MergeOperation::inputs
    - auto::end
    - MergeOperation::inputs_size
    - raksha::frontends::sql::WrapOperationResultValue
    - MergeOperation::control_inputs
    - CHECK
    - DecoderContext::MakeMergeOperation
    - auto::begin
    - std::vector<uint64_t>
    linkageType: ''
    returnType: Value
    signature: "Value DecodeMergeOperation(const MergeOperation &merge_operation,\n
      \                                 DecoderContext &decoder_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TagTransform::transformed_node
      Src: /src/raksha/src/frontends/sql/decode.cc:74,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode.cc:75,1
    - Dst: TagTransform::transform_rule_name
      Src: /src/raksha/src/frontends/sql/decode.cc:77,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode.cc:78,1
    - Dst: std::string::empty
      Src: /src/raksha/src/frontends/sql/decode.cc:78,1
    - Dst: TagTransform::tag_preconditions
      Src: /src/raksha/src/frontends/sql/decode.cc:81,1
    - Dst: TagTransform::tag_preconditions
      Src: /src/raksha/src/frontends/sql/decode.cc:82,1
    - Dst: raksha::frontends::sql::WrapOperationResultValue
      Src: /src/raksha/src/frontends/sql/decode.cc:83,1
    - Dst: DecoderContext::MakeTagTransformOperation
      Src: /src/raksha/src/frontends/sql/decode.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tag_transform
    - decoder_context
    argTypes:
    - TagTransform
    - DecoderContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 85
    functionName: raksha::frontends::sql::DecodeTagTransform
    functionSourceFile: /src/raksha/src/frontends/sql/decode.cc
    functionUses: 1
    functionsReached:
    - DecoderContext::MakeTagTransformOperation
    - TagTransform::transformed_node
    - TagTransform::tag_preconditions
    - raksha::frontends::sql::WrapOperationResultValue
    - TagTransform::transform_rule_name
    - CHECK
    - std::string::empty
    linkageType: ''
    returnType: Value
    signature: "Value DecodeTagTransform(const TagTransform &tag_transform,\n                                DecoderContext
      &decoder_context)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Expression::expr_variant_case
      Src: /src/raksha/src/frontends/sql/decode.cc:90,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode.cc:92,1
    - Dst: raksha::frontends::sql::DecodeSourceTableColumn
      Src: /src/raksha/src/frontends/sql/decode.cc:95,1
    - Dst: Expression::source_table_column
      Src: /src/raksha/src/frontends/sql/decode.cc:95,1
    - Dst: raksha::frontends::sql::DecodeLiteral
      Src: /src/raksha/src/frontends/sql/decode.cc:99,1
    - Dst: Expression::literal
      Src: /src/raksha/src/frontends/sql/decode.cc:99,1
    - Dst: raksha::frontends::sql::DecodeMergeOperation
      Src: /src/raksha/src/frontends/sql/decode.cc:102,1
    - Dst: Expression::merge_operation
      Src: /src/raksha/src/frontends/sql/decode.cc:102,1
    - Dst: raksha::frontends::sql::DecodeTagTransform
      Src: /src/raksha/src/frontends/sql/decode.cc:105,1
    - Dst: Expression::tag_transform
      Src: /src/raksha/src/frontends/sql/decode.cc:105,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode.cc:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - expr
    - decoder_context
    argTypes:
    - Expression
    - DecoderContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 110
    functionName: raksha::frontends::sql::DecodeExpression
    functionSourceFile: /src/raksha/src/frontends/sql/decode.cc
    functionUses: 1
    functionsReached:
    - Expression::literal
    - raksha::frontends::sql::DecodeLiteral
    - raksha::frontends::sql::DecodeTagTransform
    - Expression::tag_transform
    - Expression::source_table_column
    - CHECK
    - Expression::expr_variant_case
    - Expression::merge_operation
    - raksha::frontends::sql::DecodeMergeOperation
    - raksha::frontends::sql::DecodeSourceTableColumn
    linkageType: ''
    returnType: Value
    signature: "Value DecodeExpression(const Expression &expr,\n                              DecoderContext
      &decoder_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpressionArena::id_expression_pairs
      Src: /src/raksha/src/frontends/sql/decode.cc:117,1
    - Dst: raksha::frontends::sql::DecodeExpression
      Src: /src/raksha/src/frontends/sql/decode.cc:118,1
    - Dst: expression
      Src: /src/raksha/src/frontends/sql/decode.cc:118,1
    - Dst: DecoderContext::RegisterValue
      Src: /src/raksha/src/frontends/sql/decode.cc:119,1
    - Dst: id
      Src: /src/raksha/src/frontends/sql/decode.cc:119,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode.cc:122,1
    - Dst: std::optional::has_value
      Src: /src/raksha/src/frontends/sql/decode.cc:122,1
    - Dst: raksha::frontends::sql::WrapOperationResultValue
      Src: /src/raksha/src/frontends/sql/decode.cc:124,1
    - Dst: DecoderContext::MakeSqlOutputOperation
      Src: /src/raksha/src/frontends/sql/decode.cc:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - expr_arena
    - decoder_context
    argTypes:
    - ExpressionArena
    - DecoderContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 113
    functionDepth: 4
    functionLinenumber: 113
    functionLinenumberEnd: 126
    functionName: raksha::frontends::sql::DecodeExpressionArena
    functionSourceFile: /src/raksha/src/frontends/sql/decode.cc
    functionUses: 8
    functionsReached:
    - raksha::frontends::sql::DecodeExpression
    - DecoderContext::RegisterValue
    - raksha::frontends::sql::WrapOperationResultValue
    - DecoderContext::MakeSqlOutputOperation
    - std::optional::has_value
    - id
    - expression
    - CHECK
    - ExpressionArena::id_expression_pairs
    linkageType: ''
    returnType: Value
    signature: "Value DecodeExpressionArena(const ExpressionArena &expr_arena,\n                            DecoderContext
      &decoder_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetValue
      Src: /src/raksha/src/frontends/sql/decoder_context.cc:37,1
    - Dst: AddOperation
      Src: /src/raksha/src/frontends/sql/decoder_context.cc:38,1
    - Dst: MapIter<Value>
      Src: /src/raksha/src/frontends/sql/decoder_context.cc:39,1
    - Dst: MapIter<Value>
      Src: /src/raksha/src/frontends/sql/decoder_context.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - direct_input_ids
    - control_input_ids
    argTypes:
    - std::vector<uint64_t>
    - std::vector<uint64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: "&DecoderContext::MakeMergeOperation(\n    std::vector<uint64_t>
      direct_input_ids,\n    std::vector<uint64_t> control_input_ids)"
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.cc
    functionUses: 0
    functionsReached:
    - GetValue
    - MapIter<Value>
    - AddOperation
    linkageType: ''
    returnType: Operation
    signature: "Operation &DecoderContext::MakeMergeOperation(\n    std::vector<uint64_t>
      direct_input_ids,\n    std::vector<uint64_t> control_input_ids)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MapIter<std::pair<std::string, Value>>
      Src: /src/raksha/src/frontends/sql/decoder_context.cc:46,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/sql/decoder_context.cc:49,1
    - Dst: GetValue
      Src: /src/raksha/src/frontends/sql/decoder_context.cc:49,1
    - Dst: AddOperation
      Src: /src/raksha/src/frontends/sql/decoder_context.cc:51,1
    - Dst: GetValue
      Src: /src/raksha/src/frontends/sql/decoder_context.cc:52,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sql/decoder_context.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - transformed_value_id
    - rule_name
    - tag_preconditions
    argTypes:
    - uint64_t
    - absl::string_view
    - absl::flat_hash_map<std::string, uint64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: "&DecoderContext::MakeTagTransformOperation(\n    uint64_t transformed_value_id,
      absl::string_view rule_name,\n    const absl::flat_hash_map<std::string, uint64_t>
      &tag_preconditions)"
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.cc
    functionUses: 0
    functionsReached:
    - GetValue
    - std::make_pair
    - AddOperation
    - std::move
    - MapIter<std::pair<std::string, Value>>
    linkageType: ''
    returnType: ir::Operation
    signature: "ir::Operation &DecoderContext::MakeTagTransformOperation(\n    uint64_t
      transformed_value_id, absl::string_view rule_name,\n    const absl::flat_hash_map<std::string,
      uint64_t> &tag_preconditions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetValue
      Src: /src/raksha/src/frontends/sql/decoder_context.cc:37,1
    - Dst: AddOperation
      Src: /src/raksha/src/frontends/sql/decoder_context.cc:38,1
    - Dst: MapIter<Value>
      Src: /src/raksha/src/frontends/sql/decoder_context.cc:39,1
    - Dst: MapIter<Value>
      Src: /src/raksha/src/frontends/sql/decoder_context.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - direct_input_ids
    - control_input_ids
    argTypes:
    - std::vector<uint64_t>
    - std::vector<uint64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: "&DecoderContext::MakeMergeOperation(\n    std::vector<uint64_t>
      direct_input_ids,\n    std::vector<uint64_t> control_input_ids)"
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.cc
    functionUses: 0
    functionsReached:
    - GetValue
    - MapIter<Value>
    - AddOperation
    linkageType: ''
    returnType: Operation
    signature: "Operation &DecoderContext::MakeMergeOperation(\n    std::vector<uint64_t>
      direct_input_ids,\n    std::vector<uint64_t> control_input_ids)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MapIter<std::pair<std::string, Value>>
      Src: /src/raksha/src/frontends/sql/decoder_context.cc:46,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/sql/decoder_context.cc:49,1
    - Dst: GetValue
      Src: /src/raksha/src/frontends/sql/decoder_context.cc:49,1
    - Dst: AddOperation
      Src: /src/raksha/src/frontends/sql/decoder_context.cc:51,1
    - Dst: GetValue
      Src: /src/raksha/src/frontends/sql/decoder_context.cc:52,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sql/decoder_context.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - transformed_value_id
    - rule_name
    - tag_preconditions
    argTypes:
    - uint64_t
    - absl::string_view
    - absl::flat_hash_map<std::string, uint64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: "&DecoderContext::MakeTagTransformOperation(\n    uint64_t transformed_value_id,
      absl::string_view rule_name,\n    const absl::flat_hash_map<std::string, uint64_t>
      &tag_preconditions)"
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.cc
    functionUses: 0
    functionsReached:
    - GetValue
    - std::make_pair
    - AddOperation
    - std::move
    - MapIter<std::pair<std::string, Value>>
    linkageType: ''
    returnType: ir::Operation
    signature: "ir::Operation &DecoderContext::MakeTagTransformOperation(\n    uint64_t
      transformed_value_id, absl::string_view rule_name,\n    const absl::flat_hash_map<std::string,
      uint64_t> &tag_preconditions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecoderContext::BuildTopLevelBlock
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:53,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:54,1
    - Dst: Block::parent_module
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:54,1
    - Dst: DecoderContext::global_module
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context_test.cc
    functionUses: 0
    functionsReached:
    - Block::parent_module
    - EXPECT_EQ
    - DecoderContext::global_module
    - DecoderContext::BuildTopLevelBlock
    linkageType: ''
    returnType: void
    signature: void TEST(DecoderContextTest, BuildTopLevelBlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecoderContext::GetOrCreateStorage
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:60,1
    - Dst: DecoderContext::GetOrCreateStorage
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:61,1
    - Dst: DecoderContext::GetOrCreateStorage
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:62,1
    - Dst: DecoderContext::GetOrCreateStorage
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:66,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:69,1
    - Dst: Storage::type
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:69,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:70,1
    - Dst: Storage::type
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 71
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - DecoderContext::GetOrCreateStorage
    - Storage::type
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(DecoderContextTest, GetOrCreateStorageIdempotence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:79,1
    - Dst: DecoderContext::MakeLiteralOperation
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:80,1
    - Dst: DecoderContext::BuildTopLevelBlock
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:82,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:84,1
    - Dst: Operation::parent
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:84,1
    - Dst: SqlOp::GetIf<LiteralOp>
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:86,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:88,1
    - Dst: LiteralOp*::GetLiteralString
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 89
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context_test.cc
    functionUses: 0
    functionsReached:
    - SqlOp::GetIf<LiteralOp>
    - EXPECT_EQ
    - DecoderContext::MakeLiteralOperation
    - Operation::parent
    - DecoderContext::BuildTopLevelBlock
    - EXPECT_THAT
    - LiteralOp*::GetLiteralString
    - ASSERT_NE
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(LiteralOpTest, MakeLiteralOperationTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::type_factory
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:98,1
    - Dst: Any
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:100,1
    - Dst: DecoderContext::RegisterValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:101,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:102,1
    - Dst: Value::If
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:102,1
    - Dst: NotNull
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:102,1
    - Dst: StoredValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:103,1
    - Dst: DecoderContext::RegisterValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:104,1
    - Dst: DecoderContext::GetValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:105,1
    - Dst: DecoderContext::GetValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 109
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Any
    - IRContext::type_factory
    - DecoderContext::RegisterValue
    - NotNull
    - DecoderContext::GetValue
    - Value::If
    - EXPECT_THAT
    - StoredValue
    linkageType: ''
    returnType: void
    signature: void TEST(DecoderContextTest, DecoderContextRegisterAndGetValueTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecoderContext::RegisterValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:115,1
    - Dst: Value
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:115,1
    - Dst: Any
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:115,1
    - Dst: DecoderContext::RegisterValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:116,1
    - Dst: Value
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:116,1
    - Dst: Any
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:116,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:118,1
    - Dst: DecoderContext::RegisterValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:118,1
    - Dst: Value
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:118,1
    - Dst: Any
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:118,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:121,1
    - Dst: DecoderContext::RegisterValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:121,1
    - Dst: Value
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:121,1
    - Dst: Any
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:121,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:124,1
    - Dst: DecoderContext::GetValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 126
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context_test.cc
    functionUses: 0
    functionsReached:
    - Value
    - Any
    - DecoderContext::RegisterValue
    - DecoderContext::GetValue
    - EXPECT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(DecoderContextDeathTest, DecoderContextValueRegistryDeathTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:133,1
    - Dst: DecoderContext::RegisterValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:141,1
    - Dst: MapIter<uint64_t>
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:145,1
    - Dst: MapIter<uint64_t>
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:147,1
    - Dst: DecoderContext::MakeMergeOperation
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:150,1
    - Dst: DecoderContext::BuildTopLevelBlock
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:153,1
    - Dst: Operation::parent
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:153,1
    - Dst: SqlOp::GetIf<MergeOp>
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:155,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:156,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:158,1
    - Dst: auto::GetDirectInputs
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:158,1
    - Dst: ElementsAreArray
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:158,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:159,1
    - Dst: auto::GetControlInputs
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:159,1
    - Dst: ElementsAreArray
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 160
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SqlOp::GetIf<MergeOp>
    - Operation::parent
    - DecoderContext::BuildTopLevelBlock
    - auto::GetDirectInputs
    - DecoderContext::RegisterValue
    - ElementsAreArray
    - MapIter<uint64_t>
    - EXPECT_THAT
    - auto::GetControlInputs
    - DecoderContext::MakeMergeOperation
    - ASSERT_NE
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeMergeOpTest, DecodeMergeOpTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:191,1
    - Dst: absl::flat_hash_map::reserve
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:201,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:201,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:203,1
    - Dst: at
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:204,1
    - Dst: std::max
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:205,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:206,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:207,1
    - Dst: at
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:207,1
    - Dst: DecoderContext::RegisterValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:208,1
    - Dst: at
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:208,1
    - Dst: DecoderContext::RegisterValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:212,1
    - Dst: DecoderContext::MakeTagTransformOperation
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:217,1
    - Dst: SqlOp::GetIf<TagTransformOp>
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:221,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:222,1
    - Dst: absl::flat_hash_map::reserve
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:224,1
    - Dst: absl::flat_hash_map::size
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:224,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:226,1
    - Dst: DecoderContext::GetValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:226,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:229,1
    - Dst: TagTransformOp*::GetRuleName
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:229,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:230,1
    - Dst: TagTransformOp*::GetTransformedValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:230,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:231,1
    - Dst: TagTransformOp*::GetPreconditions
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:231,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 233
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context_test.cc
    functionUses: 0
    functionsReached:
    - std::max
    - DecoderContext::MakeTagTransformOperation
    - DecoderContext::RegisterValue
    - absl::flat_hash_map::size
    - TagTransformOp*::GetTransformedValue
    - EXPECT_THAT
    - EXPECT_EQ
    - TagTransformOp*::GetPreconditions
    - absl::flat_hash_map::reserve
    - GetParam
    - UnorderedElementsAreArray
    - DecoderContext::GetValue
    - SqlOp::GetIf<TagTransformOp>
    - at
    - ASSERT_NE
    - absl::flat_hash_map::insert
    - TagTransformOp*::GetRuleName
    - size
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeTagTransformTest, DecodeTagTransformTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecoderContext::BuildTopLevelBlock
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:53,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:54,1
    - Dst: Block::parent_module
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:54,1
    - Dst: DecoderContext::global_module
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context_test.cc
    functionUses: 0
    functionsReached:
    - Block::parent_module
    - EXPECT_EQ
    - DecoderContext::global_module
    - DecoderContext::BuildTopLevelBlock
    linkageType: ''
    returnType: void
    signature: void TEST(DecoderContextTest, BuildTopLevelBlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecoderContext::GetOrCreateStorage
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:60,1
    - Dst: DecoderContext::GetOrCreateStorage
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:61,1
    - Dst: DecoderContext::GetOrCreateStorage
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:62,1
    - Dst: DecoderContext::GetOrCreateStorage
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:66,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:69,1
    - Dst: Storage::type
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:69,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:70,1
    - Dst: Storage::type
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 71
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - DecoderContext::GetOrCreateStorage
    - Storage::type
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(DecoderContextTest, GetOrCreateStorageIdempotence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:79,1
    - Dst: DecoderContext::MakeLiteralOperation
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:80,1
    - Dst: DecoderContext::BuildTopLevelBlock
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:82,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:84,1
    - Dst: Operation::parent
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:84,1
    - Dst: SqlOp::GetIf<LiteralOp>
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:86,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:88,1
    - Dst: LiteralOp*::GetLiteralString
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 89
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context_test.cc
    functionUses: 0
    functionsReached:
    - SqlOp::GetIf<LiteralOp>
    - EXPECT_EQ
    - DecoderContext::MakeLiteralOperation
    - Operation::parent
    - DecoderContext::BuildTopLevelBlock
    - EXPECT_THAT
    - LiteralOp*::GetLiteralString
    - ASSERT_NE
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(LiteralOpTest, MakeLiteralOperationTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IRContext::type_factory
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:98,1
    - Dst: Any
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:100,1
    - Dst: DecoderContext::RegisterValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:101,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:102,1
    - Dst: Value::If
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:102,1
    - Dst: NotNull
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:102,1
    - Dst: StoredValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:103,1
    - Dst: DecoderContext::RegisterValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:104,1
    - Dst: DecoderContext::GetValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:105,1
    - Dst: DecoderContext::GetValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 109
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - Any
    - IRContext::type_factory
    - DecoderContext::RegisterValue
    - NotNull
    - DecoderContext::GetValue
    - Value::If
    - EXPECT_THAT
    - StoredValue
    linkageType: ''
    returnType: void
    signature: void TEST(DecoderContextTest, DecoderContextRegisterAndGetValueTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecoderContext::RegisterValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:115,1
    - Dst: Value
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:115,1
    - Dst: Any
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:115,1
    - Dst: DecoderContext::RegisterValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:116,1
    - Dst: Value
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:116,1
    - Dst: Any
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:116,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:118,1
    - Dst: DecoderContext::RegisterValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:118,1
    - Dst: Value
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:118,1
    - Dst: Any
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:118,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:121,1
    - Dst: DecoderContext::RegisterValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:121,1
    - Dst: Value
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:121,1
    - Dst: Any
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:121,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:124,1
    - Dst: DecoderContext::GetValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 126
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context_test.cc
    functionUses: 0
    functionsReached:
    - Value
    - Any
    - DecoderContext::RegisterValue
    - DecoderContext::GetValue
    - EXPECT_DEATH
    linkageType: ''
    returnType: void
    signature: void TEST(DecoderContextDeathTest, DecoderContextValueRegistryDeathTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:133,1
    - Dst: DecoderContext::RegisterValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:141,1
    - Dst: MapIter<uint64_t>
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:145,1
    - Dst: MapIter<uint64_t>
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:147,1
    - Dst: DecoderContext::MakeMergeOperation
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:150,1
    - Dst: DecoderContext::BuildTopLevelBlock
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:153,1
    - Dst: Operation::parent
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:153,1
    - Dst: SqlOp::GetIf<MergeOp>
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:155,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:156,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:158,1
    - Dst: auto::GetDirectInputs
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:158,1
    - Dst: ElementsAreArray
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:158,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:159,1
    - Dst: auto::GetControlInputs
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:159,1
    - Dst: ElementsAreArray
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 160
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SqlOp::GetIf<MergeOp>
    - Operation::parent
    - DecoderContext::BuildTopLevelBlock
    - auto::GetDirectInputs
    - DecoderContext::RegisterValue
    - ElementsAreArray
    - MapIter<uint64_t>
    - EXPECT_THAT
    - auto::GetControlInputs
    - DecoderContext::MakeMergeOperation
    - ASSERT_NE
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeMergeOpTest, DecodeMergeOpTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:191,1
    - Dst: absl::flat_hash_map::reserve
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:201,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:201,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:203,1
    - Dst: at
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:204,1
    - Dst: std::max
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:205,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:206,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:207,1
    - Dst: at
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:207,1
    - Dst: DecoderContext::RegisterValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:208,1
    - Dst: at
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:208,1
    - Dst: DecoderContext::RegisterValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:212,1
    - Dst: DecoderContext::MakeTagTransformOperation
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:217,1
    - Dst: SqlOp::GetIf<TagTransformOp>
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:221,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:222,1
    - Dst: absl::flat_hash_map::reserve
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:224,1
    - Dst: absl::flat_hash_map::size
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:224,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:226,1
    - Dst: DecoderContext::GetValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:226,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:229,1
    - Dst: TagTransformOp*::GetRuleName
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:229,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:230,1
    - Dst: TagTransformOp*::GetTransformedValue
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:230,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:231,1
    - Dst: TagTransformOp*::GetPreconditions
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:231,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/frontends/sql/decoder_context_test.cc:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 233
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context_test.cc
    functionUses: 0
    functionsReached:
    - std::max
    - DecoderContext::MakeTagTransformOperation
    - DecoderContext::RegisterValue
    - absl::flat_hash_map::size
    - TagTransformOp*::GetTransformedValue
    - EXPECT_THAT
    - EXPECT_EQ
    - TagTransformOp*::GetPreconditions
    - absl::flat_hash_map::reserve
    - GetParam
    - UnorderedElementsAreArray
    - DecoderContext::GetValue
    - SqlOp::GetIf<TagTransformOp>
    - at
    - ASSERT_NE
    - absl::flat_hash_map::insert
    - TagTransformOp*::GetRuleName
    - size
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeTagTransformTest, DecodeTagTransformTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::DecodeExpressionArena
      Src: /src/raksha/src/frontends/sql/driver.cc:30,1
    - Dst: DecoderContext::BuildTopLevelBlock
      Src: /src/raksha/src/frontends/sql/driver.cc:31,1
    - Dst: DecoderContext::global_module
      Src: /src/raksha/src/frontends/sql/driver.cc:32,1
    - Dst: backends::policy_engine::SoufflePolicyChecker
      Src: /src/raksha/src/frontends/sql/driver.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - arena
    - policy
    argTypes:
    - ExpressionArena
    - backends::policy_engine::Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 5
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: raksha::frontends::sql::verify
    functionSourceFile: /src/raksha/src/frontends/sql/driver.cc
    functionUses: 4
    functionsReached:
    - DecoderContext::BuildTopLevelBlock
    - backends::policy_engine::SoufflePolicyChecker
    - DecoderContext::global_module
    - raksha::frontends::sql::DecodeExpressionArena
    linkageType: ''
    returnType: bool
    signature: "bool verify(const ExpressionArena &arena,\n            const backends::policy_engine::Policy
      &policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::DecodeExpressionArena
      Src: /src/raksha/src/frontends/sql/driver.cc:30,1
    - Dst: DecoderContext::BuildTopLevelBlock
      Src: /src/raksha/src/frontends/sql/driver.cc:31,1
    - Dst: DecoderContext::global_module
      Src: /src/raksha/src/frontends/sql/driver.cc:32,1
    - Dst: backends::policy_engine::SoufflePolicyChecker
      Src: /src/raksha/src/frontends/sql/driver.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - arena
    - policy
    argTypes:
    - ExpressionArena
    - backends::policy_engine::Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 5
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: raksha::frontends::sql::verify
    functionSourceFile: /src/raksha/src/frontends/sql/driver.cc
    functionUses: 4
    functionsReached:
    - DecoderContext::BuildTopLevelBlock
    - backends::policy_engine::SoufflePolicyChecker
    - DecoderContext::global_module
    - raksha::frontends::sql::DecodeExpressionArena
    linkageType: ''
    returnType: bool
    signature: "bool verify(const ExpressionArena &arena,\n            const backends::policy_engine::Policy
      &policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: raksha::frontends::sql::DecodeMergeOpTest::DecodeMergeOpTest
    functionSourceFile: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecodeMergeOpTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:57,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:57,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - len
    - id_start
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: raksha::frontends::sql::DecodeMergeOpTest::GenerateIdListProto
    functionSourceFile: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - absl::StrJoin
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string GenerateIdListProto(uint64_t len, uint64_t id_start) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:63,1
    - Dst: has_value
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:66,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:66,1
    - Dst: raksha::frontends::sql::DecodeMergeOpTest::GenerateIdListProto
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:68,1
    - Dst: raksha::frontends::sql::DecodeMergeOpTest::GenerateIdListProto
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:70,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:73,1
    - Dst: raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:75,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 81
    functionName: raksha::frontends::sql::DecodeMergeOpTest::GetTextproto
    functionSourceFile: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
    - raksha::frontends::sql::DecodeMergeOpTest::GenerateIdListProto
    - has_value
    - GetParam
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string GetTextproto() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:89,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:90,1
    - Dst: GetTextproto
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:90,1
    - Dst: raksha::frontends::sql::DecodeExpressionArena
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:92,1
    - Dst: BuildTopLevelBlock
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:93,1
    - Dst: raksha::frontends::sql::testing::UnwrapDefaultOperationResult
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:99,1
    - Dst: raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:101,1
    - Dst: Operation::parent
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:101,1
    - Dst: SqlOp::GetIf<MergeOp>
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:103,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:104,1
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:105,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:106,1
    - Dst: auto::GetDirectInputs
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:106,1
    - Dst: ::testing::BeginEndDistanceIs
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:107,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:108,1
    - Dst: auto::GetControlInputs
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:108,1
    - Dst: ::testing::BeginEndDistanceIs
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 87
    functionDepth: 5
    functionLinenumber: 87
    functionLinenumberEnd: 110
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SqlOp::GetIf<MergeOp>
    - Operation::parent
    - auto::GetDirectInputs
    - EXPECT_TRUE
    - BuildTopLevelBlock
    - raksha::frontends::sql::testing::UnwrapDefaultOperationResult
    - ::testing::BeginEndDistanceIs
    - google::protobuf::TextFormat::ParseFromString
    - raksha::frontends::sql::DecodeExpressionArena
    - raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
    - GetTextproto
    - EXPECT_THAT
    - auto::GetControlInputs
    - ASSERT_NE
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeMergeOpTest, DecodeMergeOpTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: raksha::frontends::sql::DecodeMergeOpTest::DecodeMergeOpTest
    functionSourceFile: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecodeMergeOpTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:57,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:57,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - len
    - id_start
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: raksha::frontends::sql::DecodeMergeOpTest::GenerateIdListProto
    functionSourceFile: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc
    functionUses: 1
    functionsReached:
    - std::vector::push_back
    - absl::StrJoin
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string GenerateIdListProto(uint64_t len, uint64_t id_start) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:63,1
    - Dst: has_value
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:66,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:66,1
    - Dst: raksha::frontends::sql::DecodeMergeOpTest::GenerateIdListProto
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:68,1
    - Dst: raksha::frontends::sql::DecodeMergeOpTest::GenerateIdListProto
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:70,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:73,1
    - Dst: raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:75,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 81
    functionName: raksha::frontends::sql::DecodeMergeOpTest::GetTextproto
    functionSourceFile: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
    - raksha::frontends::sql::DecodeMergeOpTest::GenerateIdListProto
    - has_value
    - GetParam
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string GetTextproto() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:89,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:90,1
    - Dst: GetTextproto
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:90,1
    - Dst: raksha::frontends::sql::DecodeExpressionArena
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:92,1
    - Dst: BuildTopLevelBlock
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:93,1
    - Dst: raksha::frontends::sql::testing::UnwrapDefaultOperationResult
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:99,1
    - Dst: raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:101,1
    - Dst: Operation::parent
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:101,1
    - Dst: SqlOp::GetIf<MergeOp>
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:103,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:104,1
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:105,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:106,1
    - Dst: auto::GetDirectInputs
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:106,1
    - Dst: ::testing::BeginEndDistanceIs
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:107,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:108,1
    - Dst: auto::GetControlInputs
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:108,1
    - Dst: ::testing::BeginEndDistanceIs
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 87
    functionDepth: 5
    functionLinenumber: 87
    functionLinenumberEnd: 110
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SqlOp::GetIf<MergeOp>
    - Operation::parent
    - auto::GetDirectInputs
    - EXPECT_TRUE
    - BuildTopLevelBlock
    - raksha::frontends::sql::testing::UnwrapDefaultOperationResult
    - ::testing::BeginEndDistanceIs
    - google::protobuf::TextFormat::ParseFromString
    - raksha::frontends::sql::DecodeExpressionArena
    - raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
    - GetTextproto
    - EXPECT_THAT
    - auto::GetControlInputs
    - ASSERT_NE
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeMergeOpTest, DecodeMergeOpTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: raksha::frontends::sql::DecodeMergeOpTest::DecodeMergeOpTest
    functionSourceFile: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecodeMergeOpTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:57,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:57,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - len
    - id_start
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: raksha::frontends::sql::DecodeMergeOpTest::GenerateIdListProto
    functionSourceFile: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc
    functionUses: 2
    functionsReached:
    - std::vector::push_back
    - absl::StrJoin
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string GenerateIdListProto(uint64_t len, uint64_t id_start) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:63,1
    - Dst: has_value
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:66,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:66,1
    - Dst: raksha::frontends::sql::DecodeMergeOpTest::GenerateIdListProto
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:68,1
    - Dst: raksha::frontends::sql::DecodeMergeOpTest::GenerateIdListProto
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:70,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:73,1
    - Dst: raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:75,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 81
    functionName: raksha::frontends::sql::DecodeMergeOpTest::GetTextproto
    functionSourceFile: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
    - raksha::frontends::sql::DecodeMergeOpTest::GenerateIdListProto
    - has_value
    - GetParam
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string GetTextproto() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:89,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:90,1
    - Dst: GetTextproto
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:90,1
    - Dst: raksha::frontends::sql::DecodeExpressionArena
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:92,1
    - Dst: BuildTopLevelBlock
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:93,1
    - Dst: raksha::frontends::sql::testing::UnwrapDefaultOperationResult
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:99,1
    - Dst: raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:101,1
    - Dst: Operation::parent
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:101,1
    - Dst: SqlOp::GetIf<MergeOp>
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:103,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:104,1
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:105,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:106,1
    - Dst: auto::GetDirectInputs
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:106,1
    - Dst: ::testing::BeginEndDistanceIs
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:107,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:108,1
    - Dst: auto::GetControlInputs
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:108,1
    - Dst: ::testing::BeginEndDistanceIs
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 87
    functionDepth: 5
    functionLinenumber: 87
    functionLinenumberEnd: 110
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SqlOp::GetIf<MergeOp>
    - Operation::parent
    - auto::GetDirectInputs
    - EXPECT_TRUE
    - BuildTopLevelBlock
    - raksha::frontends::sql::testing::UnwrapDefaultOperationResult
    - ::testing::BeginEndDistanceIs
    - google::protobuf::TextFormat::ParseFromString
    - raksha::frontends::sql::DecodeExpressionArena
    - raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
    - GetTextproto
    - EXPECT_THAT
    - auto::GetControlInputs
    - ASSERT_NE
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeMergeOpTest, DecodeMergeOpTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: raksha::frontends::sql::DecodeMergeOpTest::DecodeMergeOpTest
    functionSourceFile: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecodeMergeOpTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:57,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:57,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - len
    - id_start
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: raksha::frontends::sql::DecodeMergeOpTest::GenerateIdListProto
    functionSourceFile: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc
    functionUses: 3
    functionsReached:
    - std::vector::push_back
    - absl::StrJoin
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string GenerateIdListProto(uint64_t len, uint64_t id_start) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:63,1
    - Dst: has_value
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:66,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:66,1
    - Dst: raksha::frontends::sql::DecodeMergeOpTest::GenerateIdListProto
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:68,1
    - Dst: raksha::frontends::sql::DecodeMergeOpTest::GenerateIdListProto
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:70,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:73,1
    - Dst: raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:75,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 81
    functionName: raksha::frontends::sql::DecodeMergeOpTest::GetTextproto
    functionSourceFile: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
    - raksha::frontends::sql::DecodeMergeOpTest::GenerateIdListProto
    - has_value
    - GetParam
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string GetTextproto() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:89,1
    - Dst: google::protobuf::TextFormat::ParseFromString
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:90,1
    - Dst: GetTextproto
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:90,1
    - Dst: raksha::frontends::sql::DecodeExpressionArena
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:92,1
    - Dst: BuildTopLevelBlock
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:93,1
    - Dst: raksha::frontends::sql::testing::UnwrapDefaultOperationResult
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:99,1
    - Dst: raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:101,1
    - Dst: Operation::parent
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:101,1
    - Dst: SqlOp::GetIf<MergeOp>
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:103,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:104,1
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:105,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:106,1
    - Dst: auto::GetDirectInputs
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:106,1
    - Dst: ::testing::BeginEndDistanceIs
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:107,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:108,1
    - Dst: auto::GetControlInputs
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:108,1
    - Dst: ::testing::BeginEndDistanceIs
      Src: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 87
    functionDepth: 5
    functionLinenumber: 87
    functionLinenumberEnd: 110
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SqlOp::GetIf<MergeOp>
    - Operation::parent
    - auto::GetDirectInputs
    - EXPECT_TRUE
    - BuildTopLevelBlock
    - raksha::frontends::sql::testing::UnwrapDefaultOperationResult
    - ::testing::BeginEndDistanceIs
    - google::protobuf::TextFormat::ParseFromString
    - raksha::frontends::sql::DecodeExpressionArena
    - raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
    - GetTextproto
    - EXPECT_THAT
    - auto::GetControlInputs
    - ASSERT_NE
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeMergeOpTest, DecodeMergeOpTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterOperator
      Src: /src/raksha/src/frontends/sql/decoder_context.h:40,1
    - Dst: std::make_unique<ir::Operator>
      Src: /src/raksha/src/frontends/sql/decoder_context.h:41,1
    - Dst: RegisterOperator
      Src: /src/raksha/src/frontends/sql/decoder_context.h:42,1
    - Dst: std::make_unique<ir::Operator>
      Src: /src/raksha/src/frontends/sql/decoder_context.h:43,1
    - Dst: RegisterOperator
      Src: /src/raksha/src/frontends/sql/decoder_context.h:44,1
    - Dst: std::make_unique<ir::Operator>
      Src: /src/raksha/src/frontends/sql/decoder_context.h:45,1
    - Dst: RegisterOperator
      Src: /src/raksha/src/frontends/sql/decoder_context.h:46,1
    - Dst: std::make_unique<ir::Operator>
      Src: /src/raksha/src/frontends/sql/decoder_context.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ir_context
    argTypes:
    - ir::IRContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 49
    functionName: raksha::frontends::sql::DecoderContext::DecoderContext
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.h
    functionUses: 0
    functionsReached:
    - std::make_unique<ir::Operator>
    - RegisterOperator
    linkageType: ''
    returnType: void
    signature: void DecoderContext(ir::IRContext &ir_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/frontends/sql/decoder_context.h:54,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/frontends/sql/decoder_context.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - operation
    argTypes:
    - ir::Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: raksha::frontends::sql::DecoderContext::WrapOperationResultValue
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.h
    functionUses: 2
    functionsReached:
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - raksha::backends::policy_engine::MakeOperationResultValue
    linkageType: ''
    returnType: ir::Value
    signature: ir::Value WrapOperationResultValue(const ir::Operation &operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/frontends/sql/decoder_context.h:60,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sql/decoder_context.h:60,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decoder_context.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id
    - value
    argTypes:
    - uint64_t
    - ir::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: raksha::frontends::sql::DecoderContext::RegisterValue
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.h
    functionUses: 0
    functionsReached:
    - std::move
    - CHECK
    - insert
    linkageType: ''
    returnType: void
    signature: void RegisterValue(uint64_t id, ir::Value value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decoder_context.h:69,1
    - Dst: find
      Src: /src/raksha/src/frontends/sql/decoder_context.h:74,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decoder_context.h:75,1
    - Dst: end
      Src: /src/raksha/src/frontends/sql/decoder_context.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: raksha::frontends::sql::DecoderContext::GetValue
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.h
    functionUses: 0
    functionsReached:
    - find
    - CHECK
    - end
    linkageType: ''
    returnType: ir::Value
    signature: ir::Value GetValue(uint64_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsRegisteredStorage
      Src: /src/raksha/src/frontends/sql/decoder_context.h:86,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/decoder_context.h:87,1
    - Dst: GetStorage
      Src: /src/raksha/src/frontends/sql/decoder_context.h:87,1
    - Dst: RegisterStorage
      Src: /src/raksha/src/frontends/sql/decoder_context.h:88,1
    - Dst: std::make_unique<ir::Storage>
      Src: /src/raksha/src/frontends/sql/decoder_context.h:88,1
    - Dst: type_factory
      Src: /src/raksha/src/frontends/sql/decoder_context.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - storage_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: '&GetOrCreateStorage(absl::string_view storage_name)'
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.h
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - GetStorage
    - type_factory
    - std::make_unique<ir::Storage>
    - IsRegisteredStorage
    - RegisterStorage
    linkageType: ''
    returnType: ir::Storage
    signature: ir::Storage &GetOrCreateStorage(absl::string_view storage_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddOperation
      Src: /src/raksha/src/frontends/sql/decoder_context.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - literal_str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: '&MakeLiteralOperation(absl::string_view literal_str)'
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.h
    functionUses: 0
    functionsReached:
    - AddOperation
    linkageType: ''
    returnType: ir::Operation
    signature: ir::Operation &MakeLiteralOperation(absl::string_view literal_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddOperation
      Src: /src/raksha/src/frontends/sql/decoder_context.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - ir::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: '&MakeSqlOutputOperation(ir::Value value)'
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.h
    functionUses: 0
    functionsReached:
    - AddOperation
    linkageType: ''
    returnType: ir::Operation
    signature: ir::Operation &MakeSqlOutputOperation(ir::Value value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddBlock
      Src: /src/raksha/src/frontends/sql/decoder_context.h:117,1
    - Dst: build
      Src: /src/raksha/src/frontends/sql/decoder_context.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: '&BuildTopLevelBlock()'
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.h
    functionUses: 0
    functionsReached:
    - AddBlock
    - build
    linkageType: ''
    returnType: ir::Block
    signature: ir::Block &BuildTopLevelBlock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: '&ir_context()'
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ir::IRContext
    signature: ir::IRContext &ir_context()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: '&global_module() const'
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ir::Module
    signature: ir::Module &global_module() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterOperator
      Src: /src/raksha/src/frontends/sql/decoder_context.h:40,1
    - Dst: std::make_unique<ir::Operator>
      Src: /src/raksha/src/frontends/sql/decoder_context.h:41,1
    - Dst: RegisterOperator
      Src: /src/raksha/src/frontends/sql/decoder_context.h:42,1
    - Dst: std::make_unique<ir::Operator>
      Src: /src/raksha/src/frontends/sql/decoder_context.h:43,1
    - Dst: RegisterOperator
      Src: /src/raksha/src/frontends/sql/decoder_context.h:44,1
    - Dst: std::make_unique<ir::Operator>
      Src: /src/raksha/src/frontends/sql/decoder_context.h:45,1
    - Dst: RegisterOperator
      Src: /src/raksha/src/frontends/sql/decoder_context.h:46,1
    - Dst: std::make_unique<ir::Operator>
      Src: /src/raksha/src/frontends/sql/decoder_context.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ir_context
    argTypes:
    - ir::IRContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 49
    functionName: raksha::frontends::sql::DecoderContext::DecoderContext
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.h
    functionUses: 0
    functionsReached:
    - std::make_unique<ir::Operator>
    - RegisterOperator
    linkageType: ''
    returnType: void
    signature: void DecoderContext(ir::IRContext &ir_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/frontends/sql/decoder_context.h:54,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/frontends/sql/decoder_context.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - operation
    argTypes:
    - ir::Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: raksha::frontends::sql::DecoderContext::WrapOperationResultValue
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.h
    functionUses: 2
    functionsReached:
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - raksha::backends::policy_engine::MakeOperationResultValue
    linkageType: ''
    returnType: ir::Value
    signature: ir::Value WrapOperationResultValue(const ir::Operation &operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/raksha/src/frontends/sql/decoder_context.h:60,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sql/decoder_context.h:60,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decoder_context.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id
    - value
    argTypes:
    - uint64_t
    - ir::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: raksha::frontends::sql::DecoderContext::RegisterValue
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.h
    functionUses: 0
    functionsReached:
    - std::move
    - CHECK
    - insert
    linkageType: ''
    returnType: void
    signature: void RegisterValue(uint64_t id, ir::Value value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decoder_context.h:69,1
    - Dst: find
      Src: /src/raksha/src/frontends/sql/decoder_context.h:74,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decoder_context.h:75,1
    - Dst: end
      Src: /src/raksha/src/frontends/sql/decoder_context.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: raksha::frontends::sql::DecoderContext::GetValue
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.h
    functionUses: 0
    functionsReached:
    - find
    - CHECK
    - end
    linkageType: ''
    returnType: ir::Value
    signature: ir::Value GetValue(uint64_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsRegisteredStorage
      Src: /src/raksha/src/frontends/sql/decoder_context.h:86,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/decoder_context.h:87,1
    - Dst: GetStorage
      Src: /src/raksha/src/frontends/sql/decoder_context.h:87,1
    - Dst: RegisterStorage
      Src: /src/raksha/src/frontends/sql/decoder_context.h:88,1
    - Dst: std::make_unique<ir::Storage>
      Src: /src/raksha/src/frontends/sql/decoder_context.h:88,1
    - Dst: type_factory
      Src: /src/raksha/src/frontends/sql/decoder_context.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - storage_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: '&GetOrCreateStorage(absl::string_view storage_name)'
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.h
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - GetStorage
    - type_factory
    - std::make_unique<ir::Storage>
    - IsRegisteredStorage
    - RegisterStorage
    linkageType: ''
    returnType: ir::Storage
    signature: ir::Storage &GetOrCreateStorage(absl::string_view storage_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddOperation
      Src: /src/raksha/src/frontends/sql/decoder_context.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - literal_str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: '&MakeLiteralOperation(absl::string_view literal_str)'
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.h
    functionUses: 0
    functionsReached:
    - AddOperation
    linkageType: ''
    returnType: ir::Operation
    signature: ir::Operation &MakeLiteralOperation(absl::string_view literal_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddOperation
      Src: /src/raksha/src/frontends/sql/decoder_context.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - ir::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: '&MakeSqlOutputOperation(ir::Value value)'
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.h
    functionUses: 0
    functionsReached:
    - AddOperation
    linkageType: ''
    returnType: ir::Operation
    signature: ir::Operation &MakeSqlOutputOperation(ir::Value value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddBlock
      Src: /src/raksha/src/frontends/sql/decoder_context.h:117,1
    - Dst: build
      Src: /src/raksha/src/frontends/sql/decoder_context.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: '&BuildTopLevelBlock()'
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.h
    functionUses: 0
    functionsReached:
    - AddBlock
    - build
    linkageType: ''
    returnType: ir::Block
    signature: ir::Block &BuildTopLevelBlock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: '&ir_context()'
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ir::IRContext
    signature: ir::IRContext &ir_context()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: '&global_module() const'
    functionSourceFile: /src/raksha/src/frontends/sql/decoder_context.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ir::Module
    signature: ir::Module &global_module() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: google::protobuf::TextFormat::Parser
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:46,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:46,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - text
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - google::protobuf::TextFormat::Parser
    - std::string
    - CHECK
    linkageType: ''
    returnType: ExpressionArena
    signature: ExpressionArena ParseSqlPolicyRulesProtoText(absl::string_view text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blocks
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:56,1
    - Dst: operations
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:57,1
    - Dst: SqlOp::GetIf<T>
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:58,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - ir::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: raksha::frontends::sql::FindAllOperations
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - SqlOp::GetIf<T>
    - blocks
    - operations
    linkageType: ''
    returnType: std::vector<const T*>
    signature: std::vector<const T*> FindAllOperations(const ir::Module& module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::FindAllOperations
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:70,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:71,1
    - Dst: std::vector::size
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - ir::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: raksha::frontends::sql::FindOperation
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - CHECK
    - raksha::frontends::sql::FindAllOperations
    - std::vector::size
    linkageType: ''
    returnType: T
    signature: T * FindOperation(const ir::Module& module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:190,1
    - Dst: ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' param'
    argTypes:
    - ParamType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 199
    functionName: raksha::frontends::sql::DecodeSqlTagTransformOpRuleTest::GetExpressionArena
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - absl::Substitute
    - ParseSqlPolicyRulesProtoText
    linkageType: ''
    returnType: ExpressionArena
    signature: ExpressionArena GetExpressionArena(const ParamType& param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:205,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' param'
    argTypes:
    - ParamType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 215
    functionName: raksha::frontends::sql::DecodeSqlTagTransformOpRuleTest::GetParsedModule
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - absl::Substitute
    linkageType: ''
    returnType: IrProgramParserResult
    signature: IrProgramParserResult GetParsedModule(const ParamType& param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:226,1
    - Dst: GetExpressionArena
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:227,1
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:227,1
    - Dst: GetParsedModule
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:228,1
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:228,1
    - Dst: raksha::frontends::sql::FindOperation
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:231,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:234,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:236,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:239,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:240,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:241,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:241,1
    - Dst: OutputRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:246,1
    - Dst: InferenceRuleSequence
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:248,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:255,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:255,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:255,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 257
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::FindOperation
    - std::make_pair
    - InferenceRuleSequence
    - OutputRules
    - InferenceRules::action_rules
    - EXPECT_THAT
    - GetExpressionArena
    - UnorderedElementsAre
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - absl::StrCat
    - InferenceRules::actions
    - GetParam
    - GetParsedModule
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeSqlTagTransformOpRuleTest, DecodingTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:260,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:267,1
    - Dst: raksha::frontends::sql::FindAllOperations
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:278,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:280,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:281,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:281,1
    - Dst: SizeIs
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:281,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:282,1
    - Dst: raksha::utils::ranges::keys
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:282,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:282,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:283,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:284,1
    - Dst: raksha::utils::ranges::keys
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:284,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:284,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:285,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:286,1
    - Dst: raksha::utils::ranges::values
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:286,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:286,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 288
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::ranges::values
    - raksha::parser::ir::ParseProgram
    - SizeIs
    - UnorderedElementsAreArray
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    - raksha::utils::ranges::keys
    - InferenceRules::action_rules
    - EXPECT_THAT
    - UnorderedElementsAre
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - InferenceRules::actions
    - raksha::frontends::sql::FindAllOperations
    linkageType: ''
    returnType: void
    signature: void TEST(DecodeSqlTagTransformOpRuleTest, DuplicateRuleNamesAreUniqued)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:308,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - control_input_start_index
    - rule_name
    argTypes:
    - uint64_t
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 319
    functionName: raksha::frontends::sql::DecodeSqlMergeOpRuleTest::GetParsedModule
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - absl::Substitute
    linkageType: ''
    returnType: IrProgramParserResult
    signature: "IrProgramParserResult GetParsedModule(uint64_t control_input_start_index,\n
      \                                       absl::string_view rule_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:342,1
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:343,1
    - Dst: GetParsedModule
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:345,1
    - Dst: raksha::frontends::sql::FindOperation
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:347,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:349,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:352,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:355,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:356,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:357,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:357,1
    - Dst: OutputRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:362,1
    - Dst: InferenceRuleSequence
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:363,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:371,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:371,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:372,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 340
    functionDepth: 4
    functionLinenumber: 340
    functionLinenumberEnd: 373
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::FindOperation
    - std::make_pair
    - InferenceRuleSequence
    - OutputRules
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    - InferenceRules::action_rules
    - EXPECT_THAT
    - UnorderedElementsAre
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - absl::StrCat
    - InferenceRules::actions
    - GetParam
    - GetParsedModule
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeSqlMergeOpRuleTest, DecodingTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:376,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:383,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:390,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:391,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 374
    functionDepth: 4
    functionLinenumber: 374
    functionLinenumberEnd: 393
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - EXPECT_DEATH
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    linkageType: ''
    returnType: void
    signature: void TEST(DecodeSqlPolicyRulesDeathTest, UnknownSqlPolicyRuleActionCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:396,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:414,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:415,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 395
    functionDepth: 4
    functionLinenumber: 395
    functionLinenumberEnd: 417
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - EXPECT_DEATH
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    linkageType: ''
    returnType: void
    signature: void TEST(DecodeSqlPolicyRulesDeathTest, DuplicateRulesInProtoCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:420,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:433,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:442,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 419
    functionDepth: 4
    functionLinenumber: 419
    functionLinenumberEnd: 444
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - EXPECT_DEATH
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    linkageType: ''
    returnType: void
    signature: void TEST(DecodeSqlPolicyRulesDeathTest, FailsIfInputIndexOfPreconditionIsAbsent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:448,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:452,1
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:452,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:461,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 446
    functionDepth: 4
    functionLinenumber: 446
    functionLinenumberEnd: 464
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    - absl::Substitute
    - EXPECT_DEATH
    - raksha::frontends::sql::DecodeSqlPolicyRules
    linkageType: ''
    returnType: void
    signature: "void TEST(DecodeSqlPolicyRulesDeathTest,\n     FailsIfSpecialTagTransformHasMoreThanOneInput)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:468,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:472,1
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:472,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:481,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 466
    functionDepth: 4
    functionLinenumber: 466
    functionLinenumberEnd: 485
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    - absl::Substitute
    - EXPECT_DEATH
    - raksha::frontends::sql::DecodeSqlPolicyRules
    linkageType: ''
    returnType: void
    signature: "void TEST(DecodeSqlPolicyRulesDeathTest,\n     FailsIfSpecialTagTransformDoesNotHaveOperationResultAsArgument)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:489,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:493,1
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:493,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:502,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 487
    functionDepth: 4
    functionLinenumber: 487
    functionLinenumberEnd: 505
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    - absl::Substitute
    - EXPECT_DEATH
    - raksha::frontends::sql::DecodeSqlPolicyRules
    linkageType: ''
    returnType: void
    signature: "void TEST(DecodeSqlPolicyRulesDeathTest,\n     FailsIfSpecialTagTransformDoesNotReferToMergeOp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: google::protobuf::TextFormat::Parser
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:46,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:46,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - text
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 8
    functionsReached:
    - google::protobuf::TextFormat::Parser
    - std::string
    - CHECK
    linkageType: ''
    returnType: ExpressionArena
    signature: ExpressionArena ParseSqlPolicyRulesProtoText(absl::string_view text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blocks
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:56,1
    - Dst: operations
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:57,1
    - Dst: SqlOp::GetIf<T>
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:58,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - ir::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: raksha::frontends::sql::FindAllOperations
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 2
    functionsReached:
    - std::vector::push_back
    - SqlOp::GetIf<T>
    - blocks
    - operations
    linkageType: ''
    returnType: std::vector<const T*>
    signature: std::vector<const T*> FindAllOperations(const ir::Module& module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::FindAllOperations
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:70,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:71,1
    - Dst: std::vector::size
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - ir::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: raksha::frontends::sql::FindOperation
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 2
    functionsReached:
    - CHECK
    - raksha::frontends::sql::FindAllOperations
    - std::vector::size
    linkageType: ''
    returnType: T
    signature: T * FindOperation(const ir::Module& module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:190,1
    - Dst: ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' param'
    argTypes:
    - ParamType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 199
    functionName: raksha::frontends::sql::DecodeSqlTagTransformOpRuleTest::GetExpressionArena
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - absl::Substitute
    - ParseSqlPolicyRulesProtoText
    linkageType: ''
    returnType: ExpressionArena
    signature: ExpressionArena GetExpressionArena(const ParamType& param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:205,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' param'
    argTypes:
    - ParamType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 215
    functionName: raksha::frontends::sql::DecodeSqlTagTransformOpRuleTest::GetParsedModule
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - absl::Substitute
    linkageType: ''
    returnType: IrProgramParserResult
    signature: IrProgramParserResult GetParsedModule(const ParamType& param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:226,1
    - Dst: GetExpressionArena
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:227,1
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:227,1
    - Dst: GetParsedModule
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:228,1
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:228,1
    - Dst: raksha::frontends::sql::FindOperation
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:231,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:234,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:236,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:239,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:240,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:241,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:241,1
    - Dst: OutputRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:246,1
    - Dst: InferenceRuleSequence
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:248,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:255,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:255,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:255,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 257
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::FindOperation
    - std::make_pair
    - InferenceRuleSequence
    - OutputRules
    - InferenceRules::action_rules
    - EXPECT_THAT
    - GetExpressionArena
    - UnorderedElementsAre
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - absl::StrCat
    - InferenceRules::actions
    - GetParam
    - GetParsedModule
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeSqlTagTransformOpRuleTest, DecodingTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:260,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:267,1
    - Dst: raksha::frontends::sql::FindAllOperations
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:278,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:280,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:281,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:281,1
    - Dst: SizeIs
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:281,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:282,1
    - Dst: raksha::utils::ranges::keys
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:282,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:282,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:283,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:284,1
    - Dst: raksha::utils::ranges::keys
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:284,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:284,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:285,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:286,1
    - Dst: raksha::utils::ranges::values
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:286,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:286,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 288
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::ranges::values
    - raksha::parser::ir::ParseProgram
    - SizeIs
    - UnorderedElementsAreArray
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    - raksha::utils::ranges::keys
    - InferenceRules::action_rules
    - EXPECT_THAT
    - UnorderedElementsAre
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - InferenceRules::actions
    - raksha::frontends::sql::FindAllOperations
    linkageType: ''
    returnType: void
    signature: void TEST(DecodeSqlTagTransformOpRuleTest, DuplicateRuleNamesAreUniqued)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:308,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - control_input_start_index
    - rule_name
    argTypes:
    - uint64_t
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 319
    functionName: raksha::frontends::sql::DecodeSqlMergeOpRuleTest::GetParsedModule
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - absl::Substitute
    linkageType: ''
    returnType: IrProgramParserResult
    signature: "IrProgramParserResult GetParsedModule(uint64_t control_input_start_index,\n
      \                                       absl::string_view rule_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:342,1
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:343,1
    - Dst: GetParsedModule
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:345,1
    - Dst: raksha::frontends::sql::FindOperation
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:347,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:349,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:352,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:355,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:356,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:357,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:357,1
    - Dst: OutputRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:362,1
    - Dst: InferenceRuleSequence
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:363,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:371,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:371,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:372,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 340
    functionDepth: 4
    functionLinenumber: 340
    functionLinenumberEnd: 373
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::FindOperation
    - std::make_pair
    - InferenceRuleSequence
    - OutputRules
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    - InferenceRules::action_rules
    - EXPECT_THAT
    - UnorderedElementsAre
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - absl::StrCat
    - InferenceRules::actions
    - GetParam
    - GetParsedModule
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeSqlMergeOpRuleTest, DecodingTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:376,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:383,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:390,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:391,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 374
    functionDepth: 4
    functionLinenumber: 374
    functionLinenumberEnd: 393
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - EXPECT_DEATH
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    linkageType: ''
    returnType: void
    signature: void TEST(DecodeSqlPolicyRulesDeathTest, UnknownSqlPolicyRuleActionCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:396,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:414,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:415,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 395
    functionDepth: 4
    functionLinenumber: 395
    functionLinenumberEnd: 417
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - EXPECT_DEATH
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    linkageType: ''
    returnType: void
    signature: void TEST(DecodeSqlPolicyRulesDeathTest, DuplicateRulesInProtoCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:420,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:433,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:442,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 419
    functionDepth: 4
    functionLinenumber: 419
    functionLinenumberEnd: 444
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - EXPECT_DEATH
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    linkageType: ''
    returnType: void
    signature: void TEST(DecodeSqlPolicyRulesDeathTest, FailsIfInputIndexOfPreconditionIsAbsent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:448,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:452,1
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:452,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:461,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 446
    functionDepth: 4
    functionLinenumber: 446
    functionLinenumberEnd: 464
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    - absl::Substitute
    - EXPECT_DEATH
    - raksha::frontends::sql::DecodeSqlPolicyRules
    linkageType: ''
    returnType: void
    signature: "void TEST(DecodeSqlPolicyRulesDeathTest,\n     FailsIfSpecialTagTransformHasMoreThanOneInput)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:468,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:472,1
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:472,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:481,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 466
    functionDepth: 4
    functionLinenumber: 466
    functionLinenumberEnd: 485
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    - absl::Substitute
    - EXPECT_DEATH
    - raksha::frontends::sql::DecodeSqlPolicyRules
    linkageType: ''
    returnType: void
    signature: "void TEST(DecodeSqlPolicyRulesDeathTest,\n     FailsIfSpecialTagTransformDoesNotHaveOperationResultAsArgument)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:489,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:493,1
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:493,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:502,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 487
    functionDepth: 4
    functionLinenumber: 487
    functionLinenumberEnd: 505
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    - absl::Substitute
    - EXPECT_DEATH
    - raksha::frontends::sql::DecodeSqlPolicyRules
    linkageType: ''
    returnType: void
    signature: "void TEST(DecodeSqlPolicyRulesDeathTest,\n     FailsIfSpecialTagTransformDoesNotReferToMergeOp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: google::protobuf::TextFormat::Parser
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:46,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:46,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - text
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 16
    functionsReached:
    - google::protobuf::TextFormat::Parser
    - std::string
    - CHECK
    linkageType: ''
    returnType: ExpressionArena
    signature: ExpressionArena ParseSqlPolicyRulesProtoText(absl::string_view text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blocks
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:56,1
    - Dst: operations
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:57,1
    - Dst: SqlOp::GetIf<T>
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:58,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - ir::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: raksha::frontends::sql::FindAllOperations
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 4
    functionsReached:
    - std::vector::push_back
    - SqlOp::GetIf<T>
    - blocks
    - operations
    linkageType: ''
    returnType: std::vector<const T*>
    signature: std::vector<const T*> FindAllOperations(const ir::Module& module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::FindAllOperations
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:70,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:71,1
    - Dst: std::vector::size
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - ir::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: raksha::frontends::sql::FindOperation
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 4
    functionsReached:
    - CHECK
    - raksha::frontends::sql::FindAllOperations
    - std::vector::size
    linkageType: ''
    returnType: T
    signature: T * FindOperation(const ir::Module& module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:190,1
    - Dst: ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' param'
    argTypes:
    - ParamType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 199
    functionName: raksha::frontends::sql::DecodeSqlTagTransformOpRuleTest::GetExpressionArena
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - absl::Substitute
    - ParseSqlPolicyRulesProtoText
    linkageType: ''
    returnType: ExpressionArena
    signature: ExpressionArena GetExpressionArena(const ParamType& param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:205,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' param'
    argTypes:
    - ParamType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 215
    functionName: raksha::frontends::sql::DecodeSqlTagTransformOpRuleTest::GetParsedModule
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - absl::Substitute
    linkageType: ''
    returnType: IrProgramParserResult
    signature: IrProgramParserResult GetParsedModule(const ParamType& param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:226,1
    - Dst: GetExpressionArena
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:227,1
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:227,1
    - Dst: GetParsedModule
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:228,1
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:228,1
    - Dst: raksha::frontends::sql::FindOperation
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:231,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:234,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:236,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:239,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:240,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:241,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:241,1
    - Dst: OutputRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:246,1
    - Dst: InferenceRuleSequence
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:248,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:255,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:255,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:255,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 257
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::FindOperation
    - std::make_pair
    - InferenceRuleSequence
    - OutputRules
    - InferenceRules::action_rules
    - EXPECT_THAT
    - GetExpressionArena
    - UnorderedElementsAre
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - absl::StrCat
    - InferenceRules::actions
    - GetParam
    - GetParsedModule
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeSqlTagTransformOpRuleTest, DecodingTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:260,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:267,1
    - Dst: raksha::frontends::sql::FindAllOperations
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:278,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:280,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:281,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:281,1
    - Dst: SizeIs
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:281,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:282,1
    - Dst: raksha::utils::ranges::keys
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:282,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:282,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:283,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:284,1
    - Dst: raksha::utils::ranges::keys
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:284,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:284,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:285,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:286,1
    - Dst: raksha::utils::ranges::values
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:286,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:286,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 288
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::ranges::values
    - raksha::parser::ir::ParseProgram
    - SizeIs
    - UnorderedElementsAreArray
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    - raksha::utils::ranges::keys
    - InferenceRules::action_rules
    - EXPECT_THAT
    - UnorderedElementsAre
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - InferenceRules::actions
    - raksha::frontends::sql::FindAllOperations
    linkageType: ''
    returnType: void
    signature: void TEST(DecodeSqlTagTransformOpRuleTest, DuplicateRuleNamesAreUniqued)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:308,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - control_input_start_index
    - rule_name
    argTypes:
    - uint64_t
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 319
    functionName: raksha::frontends::sql::DecodeSqlMergeOpRuleTest::GetParsedModule
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - absl::Substitute
    linkageType: ''
    returnType: IrProgramParserResult
    signature: "IrProgramParserResult GetParsedModule(uint64_t control_input_start_index,\n
      \                                       absl::string_view rule_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:342,1
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:343,1
    - Dst: GetParsedModule
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:345,1
    - Dst: raksha::frontends::sql::FindOperation
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:347,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:349,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:352,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:355,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:356,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:357,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:357,1
    - Dst: OutputRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:362,1
    - Dst: InferenceRuleSequence
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:363,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:371,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:371,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:372,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 340
    functionDepth: 4
    functionLinenumber: 340
    functionLinenumberEnd: 373
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::FindOperation
    - std::make_pair
    - InferenceRuleSequence
    - OutputRules
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    - InferenceRules::action_rules
    - EXPECT_THAT
    - UnorderedElementsAre
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - absl::StrCat
    - InferenceRules::actions
    - GetParam
    - GetParsedModule
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeSqlMergeOpRuleTest, DecodingTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:376,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:383,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:390,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:391,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 374
    functionDepth: 4
    functionLinenumber: 374
    functionLinenumberEnd: 393
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - EXPECT_DEATH
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    linkageType: ''
    returnType: void
    signature: void TEST(DecodeSqlPolicyRulesDeathTest, UnknownSqlPolicyRuleActionCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:396,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:414,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:415,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 395
    functionDepth: 4
    functionLinenumber: 395
    functionLinenumberEnd: 417
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - EXPECT_DEATH
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    linkageType: ''
    returnType: void
    signature: void TEST(DecodeSqlPolicyRulesDeathTest, DuplicateRulesInProtoCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:420,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:433,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:442,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 419
    functionDepth: 4
    functionLinenumber: 419
    functionLinenumberEnd: 444
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - EXPECT_DEATH
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    linkageType: ''
    returnType: void
    signature: void TEST(DecodeSqlPolicyRulesDeathTest, FailsIfInputIndexOfPreconditionIsAbsent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:448,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:452,1
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:452,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:461,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 446
    functionDepth: 4
    functionLinenumber: 446
    functionLinenumberEnd: 464
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    - absl::Substitute
    - EXPECT_DEATH
    - raksha::frontends::sql::DecodeSqlPolicyRules
    linkageType: ''
    returnType: void
    signature: "void TEST(DecodeSqlPolicyRulesDeathTest,\n     FailsIfSpecialTagTransformHasMoreThanOneInput)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:468,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:472,1
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:472,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:481,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 466
    functionDepth: 4
    functionLinenumber: 466
    functionLinenumberEnd: 485
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    - absl::Substitute
    - EXPECT_DEATH
    - raksha::frontends::sql::DecodeSqlPolicyRules
    linkageType: ''
    returnType: void
    signature: "void TEST(DecodeSqlPolicyRulesDeathTest,\n     FailsIfSpecialTagTransformDoesNotHaveOperationResultAsArgument)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:489,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:493,1
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:493,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:502,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 487
    functionDepth: 4
    functionLinenumber: 487
    functionLinenumberEnd: 505
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    - absl::Substitute
    - EXPECT_DEATH
    - raksha::frontends::sql::DecodeSqlPolicyRules
    linkageType: ''
    returnType: void
    signature: "void TEST(DecodeSqlPolicyRulesDeathTest,\n     FailsIfSpecialTagTransformDoesNotReferToMergeOp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: google::protobuf::TextFormat::Parser
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:46,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:46,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - text
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 24
    functionsReached:
    - google::protobuf::TextFormat::Parser
    - std::string
    - CHECK
    linkageType: ''
    returnType: ExpressionArena
    signature: ExpressionArena ParseSqlPolicyRulesProtoText(absl::string_view text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blocks
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:56,1
    - Dst: operations
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:57,1
    - Dst: SqlOp::GetIf<T>
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:58,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - ir::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: raksha::frontends::sql::FindAllOperations
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 6
    functionsReached:
    - std::vector::push_back
    - SqlOp::GetIf<T>
    - blocks
    - operations
    linkageType: ''
    returnType: std::vector<const T*>
    signature: std::vector<const T*> FindAllOperations(const ir::Module& module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::FindAllOperations
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:70,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:71,1
    - Dst: std::vector::size
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - ir::Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: raksha::frontends::sql::FindOperation
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 6
    functionsReached:
    - CHECK
    - raksha::frontends::sql::FindAllOperations
    - std::vector::size
    linkageType: ''
    returnType: T
    signature: T * FindOperation(const ir::Module& module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:190,1
    - Dst: ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' param'
    argTypes:
    - ParamType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 199
    functionName: raksha::frontends::sql::DecodeSqlTagTransformOpRuleTest::GetExpressionArena
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - absl::Substitute
    - ParseSqlPolicyRulesProtoText
    linkageType: ''
    returnType: ExpressionArena
    signature: ExpressionArena GetExpressionArena(const ParamType& param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:205,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' param'
    argTypes:
    - ParamType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 215
    functionName: raksha::frontends::sql::DecodeSqlTagTransformOpRuleTest::GetParsedModule
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - absl::Substitute
    linkageType: ''
    returnType: IrProgramParserResult
    signature: IrProgramParserResult GetParsedModule(const ParamType& param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:226,1
    - Dst: GetExpressionArena
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:227,1
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:227,1
    - Dst: GetParsedModule
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:228,1
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:228,1
    - Dst: raksha::frontends::sql::FindOperation
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:231,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:234,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:236,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:239,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:240,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:241,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:241,1
    - Dst: OutputRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:246,1
    - Dst: InferenceRuleSequence
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:248,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:255,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:255,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:255,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 257
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::FindOperation
    - std::make_pair
    - InferenceRuleSequence
    - OutputRules
    - InferenceRules::action_rules
    - EXPECT_THAT
    - GetExpressionArena
    - UnorderedElementsAre
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - absl::StrCat
    - InferenceRules::actions
    - GetParam
    - GetParsedModule
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeSqlTagTransformOpRuleTest, DecodingTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:260,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:267,1
    - Dst: raksha::frontends::sql::FindAllOperations
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:278,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:280,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:281,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:281,1
    - Dst: SizeIs
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:281,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:282,1
    - Dst: raksha::utils::ranges::keys
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:282,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:282,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:283,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:284,1
    - Dst: raksha::utils::ranges::keys
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:284,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:284,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:285,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:286,1
    - Dst: raksha::utils::ranges::values
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:286,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:286,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 288
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::ranges::values
    - raksha::parser::ir::ParseProgram
    - SizeIs
    - UnorderedElementsAreArray
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    - raksha::utils::ranges::keys
    - InferenceRules::action_rules
    - EXPECT_THAT
    - UnorderedElementsAre
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - InferenceRules::actions
    - raksha::frontends::sql::FindAllOperations
    linkageType: ''
    returnType: void
    signature: void TEST(DecodeSqlTagTransformOpRuleTest, DuplicateRuleNamesAreUniqued)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:308,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - control_input_start_index
    - rule_name
    argTypes:
    - uint64_t
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 319
    functionName: raksha::frontends::sql::DecodeSqlMergeOpRuleTest::GetParsedModule
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - absl::Substitute
    linkageType: ''
    returnType: IrProgramParserResult
    signature: "IrProgramParserResult GetParsedModule(uint64_t control_input_start_index,\n
      \                                       absl::string_view rule_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:342,1
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:343,1
    - Dst: GetParsedModule
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:345,1
    - Dst: raksha::frontends::sql::FindOperation
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:347,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:349,1
    - Dst: absl::StrCat
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:352,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:355,1
    - Dst: InferenceRules::action_rules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:356,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:357,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:357,1
    - Dst: OutputRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:362,1
    - Dst: InferenceRuleSequence
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:363,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:371,1
    - Dst: InferenceRules::actions
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:371,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:372,1
    - Dst: std::make_pair
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 340
    functionDepth: 4
    functionLinenumber: 340
    functionLinenumberEnd: 373
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::FindOperation
    - std::make_pair
    - InferenceRuleSequence
    - OutputRules
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    - InferenceRules::action_rules
    - EXPECT_THAT
    - UnorderedElementsAre
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - absl::StrCat
    - InferenceRules::actions
    - GetParam
    - GetParsedModule
    linkageType: ''
    returnType: void
    signature: void TEST_P(DecodeSqlMergeOpRuleTest, DecodingTests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:376,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:383,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:390,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:391,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 374
    functionDepth: 4
    functionLinenumber: 374
    functionLinenumberEnd: 393
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - EXPECT_DEATH
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    linkageType: ''
    returnType: void
    signature: void TEST(DecodeSqlPolicyRulesDeathTest, UnknownSqlPolicyRuleActionCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:396,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:414,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:415,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 395
    functionDepth: 4
    functionLinenumber: 395
    functionLinenumberEnd: 417
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - EXPECT_DEATH
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    linkageType: ''
    returnType: void
    signature: void TEST(DecodeSqlPolicyRulesDeathTest, DuplicateRulesInProtoCausesFailure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:420,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:433,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:442,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 419
    functionDepth: 4
    functionLinenumber: 419
    functionLinenumberEnd: 444
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::DecodeSqlPolicyRules
    - EXPECT_DEATH
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    linkageType: ''
    returnType: void
    signature: void TEST(DecodeSqlPolicyRulesDeathTest, FailsIfInputIndexOfPreconditionIsAbsent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:448,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:452,1
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:452,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:461,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 446
    functionDepth: 4
    functionLinenumber: 446
    functionLinenumberEnd: 464
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    - absl::Substitute
    - EXPECT_DEATH
    - raksha::frontends::sql::DecodeSqlPolicyRules
    linkageType: ''
    returnType: void
    signature: "void TEST(DecodeSqlPolicyRulesDeathTest,\n     FailsIfSpecialTagTransformHasMoreThanOneInput)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:468,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:472,1
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:472,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:481,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 466
    functionDepth: 4
    functionLinenumber: 466
    functionLinenumberEnd: 485
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    - absl::Substitute
    - EXPECT_DEATH
    - raksha::frontends::sql::DecodeSqlPolicyRules
    linkageType: ''
    returnType: void
    signature: "void TEST(DecodeSqlPolicyRulesDeathTest,\n     FailsIfSpecialTagTransformDoesNotHaveOperationResultAsArgument)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::ParseSqlPolicyRulesProtoText
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:489,1
    - Dst: raksha::parser::ir::ParseProgram
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:493,1
    - Dst: absl::Substitute
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:493,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:502,1
    - Dst: raksha::frontends::sql::DecodeSqlPolicyRules
      Src: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc:502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 487
    functionDepth: 4
    functionLinenumber: 487
    functionLinenumberEnd: 505
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    functionUses: 0
    functionsReached:
    - raksha::parser::ir::ParseProgram
    - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
    - absl::Substitute
    - EXPECT_DEATH
    - raksha::frontends::sql::DecodeSqlPolicyRules
    linkageType: ''
    returnType: void
    signature: "void TEST(DecodeSqlPolicyRulesDeathTest,\n     FailsIfSpecialTagTransformDoesNotReferToMergeOp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<SqlOutputOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::frontends::sql::SqlOutputOpTest::SqlOutputOpTest
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc
    functionUses: 0
    functionsReached:
    - SqlOp::RegisterOperator<SqlOutputOp>
    linkageType: ''
    returnType: void
    signature: void SqlOutputOpTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:39,1
    - Dst: raksha::frontends::sql::SqlOutputOp::Create
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:43,1
    - Dst: std::unique_ptr::op
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:43,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:44,1
    - Dst: std::unique_ptr::parent
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:45,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:45,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:46,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:46,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:47,1
    - Dst: std::unique_ptr::attributes
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::parent
    - EXPECT_EQ
    - std::unique_ptr::attributes
    - EXPECT_TRUE
    - std::unique_ptr::op
    - std::unique_ptr::inputs
    - raksha::frontends::sql::SqlOutputOp::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(SqlOutputOpTest, FactoryMethodCreatesCorrectOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:51,1
    - Dst: raksha::frontends::sql::SqlOutputOp::Create
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:55,1
    - Dst: std::unique_ptr::GetValueMarkedAsOutput
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::GetValueMarkedAsOutput
    - EXPECT_EQ
    - raksha::frontends::sql::SqlOutputOp::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(SqlOutputOpTest, GetWrappedValueTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<SqlOutputOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::frontends::sql::SqlOutputOpTest::SqlOutputOpTest
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc
    functionUses: 0
    functionsReached:
    - SqlOp::RegisterOperator<SqlOutputOp>
    linkageType: ''
    returnType: void
    signature: void SqlOutputOpTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:39,1
    - Dst: raksha::frontends::sql::SqlOutputOp::Create
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:43,1
    - Dst: std::unique_ptr::op
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:43,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:44,1
    - Dst: std::unique_ptr::parent
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:45,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:45,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:46,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:46,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:47,1
    - Dst: std::unique_ptr::attributes
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::parent
    - EXPECT_EQ
    - std::unique_ptr::attributes
    - EXPECT_TRUE
    - std::unique_ptr::op
    - std::unique_ptr::inputs
    - raksha::frontends::sql::SqlOutputOp::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(SqlOutputOpTest, FactoryMethodCreatesCorrectOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:51,1
    - Dst: raksha::frontends::sql::SqlOutputOp::Create
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:55,1
    - Dst: std::unique_ptr::GetValueMarkedAsOutput
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::GetValueMarkedAsOutput
    - EXPECT_EQ
    - raksha::frontends::sql::SqlOutputOp::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(SqlOutputOpTest, GetWrappedValueTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<SqlOutputOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::frontends::sql::SqlOutputOpTest::SqlOutputOpTest
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc
    functionUses: 0
    functionsReached:
    - SqlOp::RegisterOperator<SqlOutputOp>
    linkageType: ''
    returnType: void
    signature: void SqlOutputOpTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:39,1
    - Dst: raksha::frontends::sql::SqlOutputOp::Create
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:43,1
    - Dst: std::unique_ptr::op
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:43,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:44,1
    - Dst: std::unique_ptr::parent
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:45,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:45,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:46,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:46,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:47,1
    - Dst: std::unique_ptr::attributes
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::parent
    - EXPECT_EQ
    - std::unique_ptr::attributes
    - EXPECT_TRUE
    - std::unique_ptr::op
    - std::unique_ptr::inputs
    - raksha::frontends::sql::SqlOutputOp::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(SqlOutputOpTest, FactoryMethodCreatesCorrectOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:51,1
    - Dst: raksha::frontends::sql::SqlOutputOp::Create
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:55,1
    - Dst: std::unique_ptr::GetValueMarkedAsOutput
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::GetValueMarkedAsOutput
    - EXPECT_EQ
    - raksha::frontends::sql::SqlOutputOp::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(SqlOutputOpTest, GetWrappedValueTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<SqlOutputOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: raksha::frontends::sql::SqlOutputOpTest::SqlOutputOpTest
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc
    functionUses: 0
    functionsReached:
    - SqlOp::RegisterOperator<SqlOutputOp>
    linkageType: ''
    returnType: void
    signature: void SqlOutputOpTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:39,1
    - Dst: raksha::frontends::sql::SqlOutputOp::Create
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:43,1
    - Dst: std::unique_ptr::op
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:43,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:44,1
    - Dst: std::unique_ptr::parent
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:45,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:45,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:46,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:46,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:47,1
    - Dst: std::unique_ptr::attributes
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::parent
    - EXPECT_EQ
    - std::unique_ptr::attributes
    - EXPECT_TRUE
    - std::unique_ptr::op
    - std::unique_ptr::inputs
    - raksha::frontends::sql::SqlOutputOp::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(SqlOutputOpTest, FactoryMethodCreatesCorrectOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:51,1
    - Dst: raksha::frontends::sql::SqlOutputOp::Create
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:55,1
    - Dst: std::unique_ptr::GetValueMarkedAsOutput
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::GetValueMarkedAsOutput
    - EXPECT_EQ
    - raksha::frontends::sql::SqlOutputOp::Create
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(SqlOutputOpTest, GetWrappedValueTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: raksha::frontends::sql::testing::ExampleValueTestHelper::ExampleValueTestHelper
    functionSourceFile: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExampleValueTestHelper()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h:33,1
    - Dst: op
      Src: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h:33,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h:35,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: raksha::frontends::sql::testing::ExampleValueTestHelper::GetOperationResult
    functionSourceFile: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h
    functionUses: 0
    functionsReached:
    - op
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - raksha::backends::policy_engine::MakeOperationResultValue
    - CHECK
    linkageType: ''
    returnType: ir::Value
    signature: ir::Value GetOperationResult(uint64_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h:39,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
      Src: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
    functionSourceFile: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h
    functionUses: 7
    functionsReached:
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
    - raksha::backends::policy_engine::MakeOperationResultValue
    linkageType: ''
    returnType: ir::Value
    signature: ir::Value GetBlockArgument(uint64_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h:42,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    functionSourceFile: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h
    functionUses: 41
    functionsReached:
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - raksha::backends::policy_engine::MakeOperationResultValue
    linkageType: ''
    returnType: ir::Value
    signature: ir::Value GetAny() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: '& GetBlock() const'
    functionSourceFile: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ir::Block
    signature: ir::Block & GetBlock() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: raksha::frontends::sql::testing::ExampleValueTestHelper::ExampleValueTestHelper
    functionSourceFile: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExampleValueTestHelper()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h:33,1
    - Dst: op
      Src: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h:33,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h:35,1
    - Dst: raksha::ir::value::OperationResult::MakeDefaultOperationResult
      Src: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: raksha::frontends::sql::testing::ExampleValueTestHelper::GetOperationResult
    functionSourceFile: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h
    functionUses: 0
    functionsReached:
    - op
    - raksha::ir::value::OperationResult::MakeDefaultOperationResult
    - raksha::backends::policy_engine::MakeOperationResultValue
    - CHECK
    linkageType: ''
    returnType: ir::Value
    signature: ir::Value GetOperationResult(uint64_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h:39,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
      Src: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
    functionSourceFile: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h
    functionUses: 8
    functionsReached:
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
    - raksha::backends::policy_engine::MakeOperationResultValue
    linkageType: ''
    returnType: ir::Value
    signature: ir::Value GetBlockArgument(uint64_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h:42,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    functionSourceFile: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h
    functionUses: 42
    functionsReached:
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - raksha::backends::policy_engine::MakeOperationResultValue
    linkageType: ''
    returnType: ir::Value
    signature: ir::Value GetAny() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: '& GetBlock() const'
    functionSourceFile: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ir::Block
    signature: ir::Block & GetBlock() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<TagTransformOp>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: raksha::frontends::sql::TagTransformOpTest::TagTransformOpTest
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc
    functionUses: 0
    functionsReached:
    - SqlOp::RegisterOperator<TagTransformOp>
    linkageType: ''
    returnType: void
    signature: void TagTransformOpTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:51,1
    - Dst: raksha::frontends::sql::TagTransformOp::Create
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:52,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:55,1
    - Dst: std::unique_ptr::op
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:56,1
    - Dst: std::unique_ptr::parent
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:56,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:59,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:59,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:59,1
    - Dst: ASSERT_GT
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:60,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:61,1
    - Dst: front
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:61,1
    - Dst: ir::NamedAttributeMap::insert
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:65,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:66,1
    - Dst: ir::Attribute::Create<ir::StringAttribute>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:67,1
    - Dst: absl::c_for_each
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:68,1
    - Dst: ir::NamedAttributeMap::insert
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:71,1
    - Dst: ir::Attribute::Create<ir::Int64Attribute>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:72,1
    - Dst: ir::ValueList::push_back
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:73,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:75,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:75,1
    - Dst: begin
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:75,1
    - Dst: end
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:75,1
    - Dst: ::testing::ElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:77,1
    - Dst: std::unique_ptr::attributes
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 78
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc
    functionUses: 0
    functionsReached:
    - ir::Attribute::Create<ir::StringAttribute>
    - EXPECT_THAT
    - end
    - EXPECT_EQ
    - ::testing::ElementsAreArray
    - ir::Attribute::Create<ir::Int64Attribute>
    - front
    - begin
    - absl::c_for_each
    - ir::NamedAttributeMap::insert
    - GetParam
    - std::unique_ptr::parent
    - std::unique_ptr::attributes
    - ir::ValueList::push_back
    - ASSERT_GT
    - std::unique_ptr::op
    - std::unique_ptr::inputs
    - raksha::utils::make_range
    - raksha::frontends::sql::TagTransformOp::Create
    - size
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST_P(TagTransformOpTest, TestSomething)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:82,1
    - Dst: raksha::frontends::sql::TagTransformOp::Create
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:85,1
    - Dst: std::unique_ptr::GetRuleName
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:86,1
    - Dst: std::unique_ptr::GetTransformedValue
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:87,1
    - Dst: std::unique_ptr::GetTransformedValueIndex
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:87,1
    - Dst: std::unique_ptr::GetPreconditions
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:88,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:89,1
    - Dst: ::testing::UnorderedElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:90,1
    - Dst: std::unique_ptr::GetPreconditionInputIndices
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:92,1
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:96,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:99,1
    - Dst: raksha::utils::ranges::keys
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:99,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:100,1
    - Dst: std::unique_ptr::attributes
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:103,1
    - Dst: find
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:105,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:106,1
    - Dst: end
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:107,1
    - Dst: ir::Attribute::Create<ir::Int64Attribute>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 110
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - utils::MapIter<std::string>
    - find
    - std::unique_ptr::GetPreconditionInputIndices
    - std::unique_ptr::GetTransformedValueIndex
    - std::unique_ptr::attributes
    - UnorderedElementsAreArray
    - std::unique_ptr::GetTransformedValue
    - std::unique_ptr::GetPreconditions
    - raksha::utils::ranges::keys
    - ir::Attribute::Create<ir::Int64Attribute>
    - ASSERT_TRUE
    - std::unique_ptr::GetRuleName
    - EXPECT_THAT
    - end
    - raksha::frontends::sql::TagTransformOp::Create
    - ::testing::UnorderedElementsAreArray
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(TagTransformOpTest, AccessorsReturnTheCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<TagTransformOp>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:114,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:115,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:115,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:116,1
    - Dst: raksha::frontends::sql::TagTransformOp::Create
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc
    functionUses: 0
    functionsReached:
    - raksha::backends::policy_engine::MakeOperationResultValue
    - SqlOp::RegisterOperator<TagTransformOp>
    - EXPECT_DEATH
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - raksha::frontends::sql::TagTransformOp::Create
    linkageType: ''
    returnType: void
    signature: void TEST(TagTransformOpDeathTest, DuplicatePreconditionNamesAreDetected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<TagTransformOp>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: raksha::frontends::sql::TagTransformOpTest::TagTransformOpTest
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc
    functionUses: 0
    functionsReached:
    - SqlOp::RegisterOperator<TagTransformOp>
    linkageType: ''
    returnType: void
    signature: void TagTransformOpTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:51,1
    - Dst: raksha::frontends::sql::TagTransformOp::Create
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:52,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:55,1
    - Dst: std::unique_ptr::op
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:56,1
    - Dst: std::unique_ptr::parent
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:56,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:59,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:59,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:59,1
    - Dst: ASSERT_GT
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:60,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:61,1
    - Dst: front
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:61,1
    - Dst: ir::NamedAttributeMap::insert
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:65,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:66,1
    - Dst: ir::Attribute::Create<ir::StringAttribute>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:67,1
    - Dst: absl::c_for_each
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:68,1
    - Dst: ir::NamedAttributeMap::insert
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:71,1
    - Dst: ir::Attribute::Create<ir::Int64Attribute>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:72,1
    - Dst: ir::ValueList::push_back
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:73,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:75,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:75,1
    - Dst: begin
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:75,1
    - Dst: end
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:75,1
    - Dst: ::testing::ElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:77,1
    - Dst: std::unique_ptr::attributes
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 78
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc
    functionUses: 0
    functionsReached:
    - ir::Attribute::Create<ir::StringAttribute>
    - EXPECT_THAT
    - end
    - EXPECT_EQ
    - ::testing::ElementsAreArray
    - ir::Attribute::Create<ir::Int64Attribute>
    - front
    - begin
    - absl::c_for_each
    - ir::NamedAttributeMap::insert
    - GetParam
    - std::unique_ptr::parent
    - std::unique_ptr::attributes
    - ir::ValueList::push_back
    - ASSERT_GT
    - std::unique_ptr::op
    - std::unique_ptr::inputs
    - raksha::utils::make_range
    - raksha::frontends::sql::TagTransformOp::Create
    - size
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST_P(TagTransformOpTest, TestSomething)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:82,1
    - Dst: raksha::frontends::sql::TagTransformOp::Create
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:85,1
    - Dst: std::unique_ptr::GetRuleName
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:86,1
    - Dst: std::unique_ptr::GetTransformedValue
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:87,1
    - Dst: std::unique_ptr::GetTransformedValueIndex
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:87,1
    - Dst: std::unique_ptr::GetPreconditions
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:88,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:89,1
    - Dst: ::testing::UnorderedElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:90,1
    - Dst: std::unique_ptr::GetPreconditionInputIndices
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:92,1
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:96,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:99,1
    - Dst: raksha::utils::ranges::keys
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:99,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:100,1
    - Dst: std::unique_ptr::attributes
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:103,1
    - Dst: find
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:105,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:106,1
    - Dst: end
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:107,1
    - Dst: ir::Attribute::Create<ir::Int64Attribute>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 110
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - utils::MapIter<std::string>
    - find
    - std::unique_ptr::GetPreconditionInputIndices
    - std::unique_ptr::GetTransformedValueIndex
    - std::unique_ptr::attributes
    - UnorderedElementsAreArray
    - std::unique_ptr::GetTransformedValue
    - std::unique_ptr::GetPreconditions
    - raksha::utils::ranges::keys
    - ir::Attribute::Create<ir::Int64Attribute>
    - ASSERT_TRUE
    - std::unique_ptr::GetRuleName
    - EXPECT_THAT
    - end
    - raksha::frontends::sql::TagTransformOp::Create
    - ::testing::UnorderedElementsAreArray
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(TagTransformOpTest, AccessorsReturnTheCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<TagTransformOp>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:114,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:115,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:115,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:116,1
    - Dst: raksha::frontends::sql::TagTransformOp::Create
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc
    functionUses: 0
    functionsReached:
    - raksha::backends::policy_engine::MakeOperationResultValue
    - SqlOp::RegisterOperator<TagTransformOp>
    - EXPECT_DEATH
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - raksha::frontends::sql::TagTransformOp::Create
    linkageType: ''
    returnType: void
    signature: void TEST(TagTransformOpDeathTest, DuplicatePreconditionNamesAreDetected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<TagTransformOp>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: raksha::frontends::sql::TagTransformOpTest::TagTransformOpTest
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc
    functionUses: 0
    functionsReached:
    - SqlOp::RegisterOperator<TagTransformOp>
    linkageType: ''
    returnType: void
    signature: void TagTransformOpTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:51,1
    - Dst: raksha::frontends::sql::TagTransformOp::Create
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:52,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:55,1
    - Dst: std::unique_ptr::op
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:56,1
    - Dst: std::unique_ptr::parent
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:56,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:59,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:59,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:59,1
    - Dst: ASSERT_GT
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:60,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:61,1
    - Dst: front
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:61,1
    - Dst: ir::NamedAttributeMap::insert
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:65,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:66,1
    - Dst: ir::Attribute::Create<ir::StringAttribute>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:67,1
    - Dst: absl::c_for_each
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:68,1
    - Dst: ir::NamedAttributeMap::insert
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:71,1
    - Dst: ir::Attribute::Create<ir::Int64Attribute>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:72,1
    - Dst: ir::ValueList::push_back
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:73,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:75,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:75,1
    - Dst: begin
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:75,1
    - Dst: end
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:75,1
    - Dst: ::testing::ElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:77,1
    - Dst: std::unique_ptr::attributes
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 78
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc
    functionUses: 0
    functionsReached:
    - ir::Attribute::Create<ir::StringAttribute>
    - EXPECT_THAT
    - end
    - EXPECT_EQ
    - ::testing::ElementsAreArray
    - ir::Attribute::Create<ir::Int64Attribute>
    - front
    - begin
    - absl::c_for_each
    - ir::NamedAttributeMap::insert
    - GetParam
    - std::unique_ptr::parent
    - std::unique_ptr::attributes
    - ir::ValueList::push_back
    - ASSERT_GT
    - std::unique_ptr::op
    - std::unique_ptr::inputs
    - raksha::utils::make_range
    - raksha::frontends::sql::TagTransformOp::Create
    - size
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST_P(TagTransformOpTest, TestSomething)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:82,1
    - Dst: raksha::frontends::sql::TagTransformOp::Create
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:85,1
    - Dst: std::unique_ptr::GetRuleName
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:86,1
    - Dst: std::unique_ptr::GetTransformedValue
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:87,1
    - Dst: std::unique_ptr::GetTransformedValueIndex
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:87,1
    - Dst: std::unique_ptr::GetPreconditions
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:88,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:89,1
    - Dst: ::testing::UnorderedElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:90,1
    - Dst: std::unique_ptr::GetPreconditionInputIndices
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:92,1
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:96,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:99,1
    - Dst: raksha::utils::ranges::keys
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:99,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:100,1
    - Dst: std::unique_ptr::attributes
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:103,1
    - Dst: find
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:105,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:106,1
    - Dst: end
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:107,1
    - Dst: ir::Attribute::Create<ir::Int64Attribute>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 110
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - utils::MapIter<std::string>
    - find
    - std::unique_ptr::GetPreconditionInputIndices
    - std::unique_ptr::GetTransformedValueIndex
    - std::unique_ptr::attributes
    - UnorderedElementsAreArray
    - std::unique_ptr::GetTransformedValue
    - std::unique_ptr::GetPreconditions
    - raksha::utils::ranges::keys
    - ir::Attribute::Create<ir::Int64Attribute>
    - ASSERT_TRUE
    - std::unique_ptr::GetRuleName
    - EXPECT_THAT
    - end
    - raksha::frontends::sql::TagTransformOp::Create
    - ::testing::UnorderedElementsAreArray
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(TagTransformOpTest, AccessorsReturnTheCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<TagTransformOp>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:114,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:115,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:115,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:116,1
    - Dst: raksha::frontends::sql::TagTransformOp::Create
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc
    functionUses: 0
    functionsReached:
    - raksha::backends::policy_engine::MakeOperationResultValue
    - SqlOp::RegisterOperator<TagTransformOp>
    - EXPECT_DEATH
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - raksha::frontends::sql::TagTransformOp::Create
    linkageType: ''
    returnType: void
    signature: void TEST(TagTransformOpDeathTest, DuplicatePreconditionNamesAreDetected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<TagTransformOp>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: raksha::frontends::sql::TagTransformOpTest::TagTransformOpTest
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc
    functionUses: 0
    functionsReached:
    - SqlOp::RegisterOperator<TagTransformOp>
    linkageType: ''
    returnType: void
    signature: void TagTransformOpTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:51,1
    - Dst: raksha::frontends::sql::TagTransformOp::Create
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:52,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:55,1
    - Dst: std::unique_ptr::op
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:56,1
    - Dst: std::unique_ptr::parent
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:56,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:59,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:59,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:59,1
    - Dst: ASSERT_GT
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:60,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:61,1
    - Dst: front
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:61,1
    - Dst: ir::NamedAttributeMap::insert
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:65,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:66,1
    - Dst: ir::Attribute::Create<ir::StringAttribute>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:67,1
    - Dst: absl::c_for_each
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:68,1
    - Dst: ir::NamedAttributeMap::insert
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:71,1
    - Dst: ir::Attribute::Create<ir::Int64Attribute>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:72,1
    - Dst: ir::ValueList::push_back
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:73,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:75,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:75,1
    - Dst: begin
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:75,1
    - Dst: end
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:75,1
    - Dst: ::testing::ElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:77,1
    - Dst: std::unique_ptr::attributes
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 78
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc
    functionUses: 0
    functionsReached:
    - ir::Attribute::Create<ir::StringAttribute>
    - EXPECT_THAT
    - end
    - EXPECT_EQ
    - ::testing::ElementsAreArray
    - ir::Attribute::Create<ir::Int64Attribute>
    - front
    - begin
    - absl::c_for_each
    - ir::NamedAttributeMap::insert
    - GetParam
    - std::unique_ptr::parent
    - std::unique_ptr::attributes
    - ir::ValueList::push_back
    - ASSERT_GT
    - std::unique_ptr::op
    - std::unique_ptr::inputs
    - raksha::utils::make_range
    - raksha::frontends::sql::TagTransformOp::Create
    - size
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST_P(TagTransformOpTest, TestSomething)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:82,1
    - Dst: raksha::frontends::sql::TagTransformOp::Create
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:85,1
    - Dst: std::unique_ptr::GetRuleName
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:86,1
    - Dst: std::unique_ptr::GetTransformedValue
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:87,1
    - Dst: std::unique_ptr::GetTransformedValueIndex
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:87,1
    - Dst: std::unique_ptr::GetPreconditions
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:88,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:89,1
    - Dst: ::testing::UnorderedElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:90,1
    - Dst: std::unique_ptr::GetPreconditionInputIndices
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:92,1
    - Dst: utils::MapIter<std::string>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:96,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:99,1
    - Dst: raksha::utils::ranges::keys
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:99,1
    - Dst: UnorderedElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:100,1
    - Dst: std::unique_ptr::attributes
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:103,1
    - Dst: find
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:105,1
    - Dst: ASSERT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:106,1
    - Dst: end
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:107,1
    - Dst: ir::Attribute::Create<ir::Int64Attribute>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 110
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - utils::MapIter<std::string>
    - find
    - std::unique_ptr::GetPreconditionInputIndices
    - std::unique_ptr::GetTransformedValueIndex
    - std::unique_ptr::attributes
    - UnorderedElementsAreArray
    - std::unique_ptr::GetTransformedValue
    - std::unique_ptr::GetPreconditions
    - raksha::utils::ranges::keys
    - ir::Attribute::Create<ir::Int64Attribute>
    - ASSERT_TRUE
    - std::unique_ptr::GetRuleName
    - EXPECT_THAT
    - end
    - raksha::frontends::sql::TagTransformOp::Create
    - ::testing::UnorderedElementsAreArray
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(TagTransformOpTest, AccessorsReturnTheCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<TagTransformOp>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:114,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:115,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:115,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:116,1
    - Dst: raksha::frontends::sql::TagTransformOp::Create
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc
    functionUses: 0
    functionsReached:
    - raksha::backends::policy_engine::MakeOperationResultValue
    - SqlOp::RegisterOperator<TagTransformOp>
    - EXPECT_DEATH
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    - raksha::frontends::sql::TagTransformOp::Create
    linkageType: ''
    returnType: void
    signature: void TEST(TagTransformOpDeathTest, DuplicatePreconditionNamesAreDetected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SqlOutputOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op.h:33,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op.h:35,1
    - Dst: SqlOp::GetOperator<SqlOutputOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op.h:35,1
    - Dst: ir::NamedAttributeMap
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op.h:36,1
    - Dst: ir::ValueList
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - parent_block
    - ' context'
    - value
    argTypes:
    - ir::Block*
    - ir::IRContext
    - ir::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: raksha::frontends::sql::SqlOutputOp::Create
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_output_op.h
    functionUses: 8
    functionsReached:
    - ABSL_DIE_IF_NULL
    - SqlOp::GetOperator<SqlOutputOp>
    - ir::NamedAttributeMap
    - std::make_unique<SqlOutputOp>
    - ir::ValueList
    linkageType: ''
    returnType: std::unique_ptr<SqlOutputOp>
    signature: "std::unique_ptr<SqlOutputOp> Create(const ir::Block* parent_block,\n
      \                                            const ir::IRContext& context,\n
      \                                            ir::Value value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inputs
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: raksha::frontends::sql::SqlOutputOp::GetValueMarkedAsOutput
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_output_op.h
    functionUses: 0
    functionsReached:
    - inputs
    linkageType: ''
    returnType: ir::Value
    signature: ir::Value GetValueMarkedAsOutput() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<SqlOutputOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op.h:33,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op.h:35,1
    - Dst: SqlOp::GetOperator<SqlOutputOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op.h:35,1
    - Dst: ir::NamedAttributeMap
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op.h:36,1
    - Dst: ir::ValueList
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - parent_block
    - ' context'
    - value
    argTypes:
    - ir::Block*
    - ir::IRContext
    - ir::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: raksha::frontends::sql::SqlOutputOp::Create
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_output_op.h
    functionUses: 8
    functionsReached:
    - ABSL_DIE_IF_NULL
    - SqlOp::GetOperator<SqlOutputOp>
    - ir::NamedAttributeMap
    - std::make_unique<SqlOutputOp>
    - ir::ValueList
    linkageType: ''
    returnType: std::unique_ptr<SqlOutputOp>
    signature: "std::unique_ptr<SqlOutputOp> Create(const ir::Block* parent_block,\n
      \                                            const ir::IRContext& context,\n
      \                                            ir::Value value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inputs
      Src: /src/raksha/src/frontends/sql/ops/sql_output_op.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: raksha::frontends::sql::SqlOutputOp::GetValueMarkedAsOutput
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_output_op.h
    functionUses: 0
    functionsReached:
    - inputs
    linkageType: ''
    returnType: ir::Value
    signature: ir::Value GetValueMarkedAsOutput() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/op_traits_test.cc:23,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/op_traits_test.cc:24,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/op_traits_test.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/op_traits_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(OpTraitsTest, NameReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/op_traits_test.cc:23,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/op_traits_test.cc:24,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/op_traits_test.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/op_traits_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(OpTraitsTest, NameReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:33,1
    - Dst: ir::IRContext::IsRegisteredOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:33,1
    - Dst: SqlOp::RegisterOperator<LiteralOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:35,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:36,1
    - Dst: ir::IRContext::IsRegisteredOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:36,1
    - Dst: ir::IRContext::GetOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:38,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:40,1
    - Dst: ir::Operator*::name
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - ir::IRContext::IsRegisteredOperator
    - EXPECT_EQ
    - EXPECT_TRUE
    - EXPECT_FALSE
    - ir::Operator*::name
    - ir::IRContext::GetOperator
    - SqlOp::RegisterOperator<LiteralOp>
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(SqlOpTest, RegisterOperatorRegistersInContext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:47,1
    - Dst: ir::IRContext::IsRegisteredOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:47,1
    - Dst: ir::IRContext::RegisterOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:48,1
    - Dst: std::make_unique<ir::Operator>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:48,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:49,1
    - Dst: ir::IRContext::IsRegisteredOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:49,1
    - Dst: SqlOp::GetOperator<LiteralOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:51,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:52,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:53,1
    - Dst: ir::Operator*::name
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - ir::IRContext::IsRegisteredOperator
    - std::make_unique<ir::Operator>
    - EXPECT_EQ
    - EXPECT_TRUE
    - EXPECT_FALSE
    - SqlOp::GetOperator<LiteralOp>
    - ir::IRContext::RegisterOperator
    - ir::Operator*::name
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(SqlOpTest, GetOperatorReturnsRegisteredOperatorInContext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:58,1
    - Dst: SqlOp::GetOperator<LiteralOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SqlOp::GetOperator<LiteralOp>
    linkageType: ''
    returnType: void
    signature: void TEST(SqlOpTest, GettingUnregisteredReturnsNullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:33,1
    - Dst: ir::IRContext::IsRegisteredOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:33,1
    - Dst: SqlOp::RegisterOperator<LiteralOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:35,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:36,1
    - Dst: ir::IRContext::IsRegisteredOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:36,1
    - Dst: ir::IRContext::GetOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:38,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:40,1
    - Dst: ir::Operator*::name
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - ir::IRContext::IsRegisteredOperator
    - EXPECT_EQ
    - EXPECT_TRUE
    - EXPECT_FALSE
    - ir::Operator*::name
    - ir::IRContext::GetOperator
    - SqlOp::RegisterOperator<LiteralOp>
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(SqlOpTest, RegisterOperatorRegistersInContext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:47,1
    - Dst: ir::IRContext::IsRegisteredOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:47,1
    - Dst: ir::IRContext::RegisterOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:48,1
    - Dst: std::make_unique<ir::Operator>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:48,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:49,1
    - Dst: ir::IRContext::IsRegisteredOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:49,1
    - Dst: SqlOp::GetOperator<LiteralOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:51,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:52,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:53,1
    - Dst: ir::Operator*::name
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - ir::IRContext::IsRegisteredOperator
    - std::make_unique<ir::Operator>
    - EXPECT_EQ
    - EXPECT_TRUE
    - EXPECT_FALSE
    - SqlOp::GetOperator<LiteralOp>
    - ir::IRContext::RegisterOperator
    - ir::Operator*::name
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(SqlOpTest, GetOperatorReturnsRegisteredOperatorInContext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:58,1
    - Dst: SqlOp::GetOperator<LiteralOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SqlOp::GetOperator<LiteralOp>
    linkageType: ''
    returnType: void
    signature: void TEST(SqlOpTest, GettingUnregisteredReturnsNullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: raksha::frontends::sql::TestOp::value
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: raksha::frontends::sql::AnotherTestOp::value
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<TestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:88,1
    - Dst: SqlOp::RegisterOperator<AnotherTestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:89,1
    - Dst: std::make_unique<ir::Operation>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:90,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:91,1
    - Dst: SqlOp::GetOperator<TestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:91,1
    - Dst: ir::NamedAttributeMap
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:92,1
    - Dst: ir::ValueList
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:92,1
    - Dst: std::make_unique<ir::Operation>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:93,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:94,1
    - Dst: SqlOp::GetOperator<AnotherTestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:94,1
    - Dst: ir::NamedAttributeMap
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:95,1
    - Dst: ir::ValueList
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: raksha::frontends::sql::SqlOpGetIfTest::SqlOpGetIfTest
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - SqlOp::GetOperator<TestOp>
    - ir::NamedAttributeMap
    - std::make_unique<ir::Operation>
    - SqlOp::RegisterOperator<TestOp>
    - SqlOp::RegisterOperator<AnotherTestOp>
    - ir::ValueList
    - SqlOp::GetOperator<AnotherTestOp>
    linkageType: ''
    returnType: void
    signature: void SqlOpGetIfTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::GetIf<TestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:105,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:107,1
    - Dst: TestOp*::value
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:107,1
    - Dst: SqlOp::GetIf<AnotherTestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:110,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:112,1
    - Dst: AnotherTestOp*::value
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: raksha::frontends::sql::TEST_F
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SqlOp::GetIf<AnotherTestOp>
    - AnotherTestOp*::value
    - TestOp*::value
    - SqlOp::GetIf<TestOp>
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(SqlOpGetIfTest, GetIfReturnsNonNullIfCorrectOpType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::GetIf<AnotherTestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:117,1
    - Dst: SqlOp::GetIf<TestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: raksha::frontends::sql::TEST_F
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - SqlOp::GetIf<AnotherTestOp>
    - EXPECT_EQ
    - SqlOp::GetIf<TestOp>
    linkageType: ''
    returnType: void
    signature: void TEST_F(SqlOpGetIfTest, GetIfReturnsNullIfIncorrectOpType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<TestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:88,1
    - Dst: SqlOp::RegisterOperator<AnotherTestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:89,1
    - Dst: std::make_unique<ir::Operation>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:90,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:91,1
    - Dst: SqlOp::GetOperator<TestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:91,1
    - Dst: ir::NamedAttributeMap
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:92,1
    - Dst: ir::ValueList
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:92,1
    - Dst: std::make_unique<ir::Operation>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:93,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:94,1
    - Dst: SqlOp::GetOperator<AnotherTestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:94,1
    - Dst: ir::NamedAttributeMap
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:95,1
    - Dst: ir::ValueList
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: raksha::frontends::sql::SqlOpGetIfTest::SqlOpGetIfTest
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - SqlOp::GetOperator<TestOp>
    - ir::NamedAttributeMap
    - std::make_unique<ir::Operation>
    - SqlOp::RegisterOperator<TestOp>
    - SqlOp::RegisterOperator<AnotherTestOp>
    - ir::ValueList
    - SqlOp::GetOperator<AnotherTestOp>
    linkageType: ''
    returnType: void
    signature: void SqlOpGetIfTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::GetIf<TestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:105,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:107,1
    - Dst: TestOp*::value
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:107,1
    - Dst: SqlOp::GetIf<AnotherTestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:110,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:112,1
    - Dst: AnotherTestOp*::value
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: raksha::frontends::sql::TEST_F
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SqlOp::GetIf<AnotherTestOp>
    - AnotherTestOp*::value
    - TestOp*::value
    - SqlOp::GetIf<TestOp>
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(SqlOpGetIfTest, GetIfReturnsNonNullIfCorrectOpType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::GetIf<AnotherTestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:117,1
    - Dst: SqlOp::GetIf<TestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: raksha::frontends::sql::TEST_F
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - SqlOp::GetIf<AnotherTestOp>
    - EXPECT_EQ
    - SqlOp::GetIf<TestOp>
    linkageType: ''
    returnType: void
    signature: void TEST_F(SqlOpGetIfTest, GetIfReturnsNullIfIncorrectOpType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:33,1
    - Dst: ir::IRContext::IsRegisteredOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:33,1
    - Dst: SqlOp::RegisterOperator<LiteralOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:35,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:36,1
    - Dst: ir::IRContext::IsRegisteredOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:36,1
    - Dst: ir::IRContext::GetOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:38,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:40,1
    - Dst: ir::Operator*::name
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - ir::IRContext::IsRegisteredOperator
    - EXPECT_EQ
    - EXPECT_TRUE
    - EXPECT_FALSE
    - ir::Operator*::name
    - ir::IRContext::GetOperator
    - SqlOp::RegisterOperator<LiteralOp>
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(SqlOpTest, RegisterOperatorRegistersInContext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:47,1
    - Dst: ir::IRContext::IsRegisteredOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:47,1
    - Dst: ir::IRContext::RegisterOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:48,1
    - Dst: std::make_unique<ir::Operator>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:48,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:49,1
    - Dst: ir::IRContext::IsRegisteredOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:49,1
    - Dst: SqlOp::GetOperator<LiteralOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:51,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:52,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:53,1
    - Dst: ir::Operator*::name
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - ir::IRContext::IsRegisteredOperator
    - std::make_unique<ir::Operator>
    - EXPECT_EQ
    - EXPECT_TRUE
    - EXPECT_FALSE
    - SqlOp::GetOperator<LiteralOp>
    - ir::IRContext::RegisterOperator
    - ir::Operator*::name
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(SqlOpTest, GetOperatorReturnsRegisteredOperatorInContext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:58,1
    - Dst: SqlOp::GetOperator<LiteralOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SqlOp::GetOperator<LiteralOp>
    linkageType: ''
    returnType: void
    signature: void TEST(SqlOpTest, GettingUnregisteredReturnsNullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:33,1
    - Dst: ir::IRContext::IsRegisteredOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:33,1
    - Dst: SqlOp::RegisterOperator<LiteralOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:35,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:36,1
    - Dst: ir::IRContext::IsRegisteredOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:36,1
    - Dst: ir::IRContext::GetOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:38,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:40,1
    - Dst: ir::Operator*::name
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - ir::IRContext::IsRegisteredOperator
    - EXPECT_EQ
    - EXPECT_TRUE
    - EXPECT_FALSE
    - ir::Operator*::name
    - ir::IRContext::GetOperator
    - SqlOp::RegisterOperator<LiteralOp>
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(SqlOpTest, RegisterOperatorRegistersInContext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:47,1
    - Dst: ir::IRContext::IsRegisteredOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:47,1
    - Dst: ir::IRContext::RegisterOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:48,1
    - Dst: std::make_unique<ir::Operator>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:48,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:49,1
    - Dst: ir::IRContext::IsRegisteredOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:49,1
    - Dst: SqlOp::GetOperator<LiteralOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:51,1
    - Dst: ASSERT_NE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:52,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:53,1
    - Dst: ir::Operator*::name
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - ir::IRContext::IsRegisteredOperator
    - std::make_unique<ir::Operator>
    - EXPECT_EQ
    - EXPECT_TRUE
    - EXPECT_FALSE
    - SqlOp::GetOperator<LiteralOp>
    - ir::IRContext::RegisterOperator
    - ir::Operator*::name
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(SqlOpTest, GetOperatorReturnsRegisteredOperatorInContext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:58,1
    - Dst: SqlOp::GetOperator<LiteralOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SqlOp::GetOperator<LiteralOp>
    linkageType: ''
    returnType: void
    signature: void TEST(SqlOpTest, GettingUnregisteredReturnsNullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: raksha::frontends::sql::TestOp::value
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: raksha::frontends::sql::AnotherTestOp::value
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<TestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:88,1
    - Dst: SqlOp::RegisterOperator<AnotherTestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:89,1
    - Dst: std::make_unique<ir::Operation>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:90,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:91,1
    - Dst: SqlOp::GetOperator<TestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:91,1
    - Dst: ir::NamedAttributeMap
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:92,1
    - Dst: ir::ValueList
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:92,1
    - Dst: std::make_unique<ir::Operation>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:93,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:94,1
    - Dst: SqlOp::GetOperator<AnotherTestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:94,1
    - Dst: ir::NamedAttributeMap
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:95,1
    - Dst: ir::ValueList
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: raksha::frontends::sql::SqlOpGetIfTest::SqlOpGetIfTest
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - SqlOp::GetOperator<TestOp>
    - ir::NamedAttributeMap
    - std::make_unique<ir::Operation>
    - SqlOp::RegisterOperator<TestOp>
    - SqlOp::RegisterOperator<AnotherTestOp>
    - ir::ValueList
    - SqlOp::GetOperator<AnotherTestOp>
    linkageType: ''
    returnType: void
    signature: void SqlOpGetIfTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::GetIf<TestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:105,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:107,1
    - Dst: TestOp*::value
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:107,1
    - Dst: SqlOp::GetIf<AnotherTestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:110,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:112,1
    - Dst: AnotherTestOp*::value
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: raksha::frontends::sql::TEST_F
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SqlOp::GetIf<AnotherTestOp>
    - AnotherTestOp*::value
    - TestOp*::value
    - SqlOp::GetIf<TestOp>
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(SqlOpGetIfTest, GetIfReturnsNonNullIfCorrectOpType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::GetIf<AnotherTestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:117,1
    - Dst: SqlOp::GetIf<TestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: raksha::frontends::sql::TEST_F
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - SqlOp::GetIf<AnotherTestOp>
    - EXPECT_EQ
    - SqlOp::GetIf<TestOp>
    linkageType: ''
    returnType: void
    signature: void TEST_F(SqlOpGetIfTest, GetIfReturnsNullIfIncorrectOpType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<TestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:88,1
    - Dst: SqlOp::RegisterOperator<AnotherTestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:89,1
    - Dst: std::make_unique<ir::Operation>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:90,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:91,1
    - Dst: SqlOp::GetOperator<TestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:91,1
    - Dst: ir::NamedAttributeMap
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:92,1
    - Dst: ir::ValueList
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:92,1
    - Dst: std::make_unique<ir::Operation>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:93,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:94,1
    - Dst: SqlOp::GetOperator<AnotherTestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:94,1
    - Dst: ir::NamedAttributeMap
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:95,1
    - Dst: ir::ValueList
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: raksha::frontends::sql::SqlOpGetIfTest::SqlOpGetIfTest
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - SqlOp::GetOperator<TestOp>
    - ir::NamedAttributeMap
    - std::make_unique<ir::Operation>
    - SqlOp::RegisterOperator<TestOp>
    - SqlOp::RegisterOperator<AnotherTestOp>
    - ir::ValueList
    - SqlOp::GetOperator<AnotherTestOp>
    linkageType: ''
    returnType: void
    signature: void SqlOpGetIfTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::GetIf<TestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:105,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:107,1
    - Dst: TestOp*::value
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:107,1
    - Dst: SqlOp::GetIf<AnotherTestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:110,1
    - Dst: EXPECT_NE
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:112,1
    - Dst: AnotherTestOp*::value
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: raksha::frontends::sql::TEST_F
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - SqlOp::GetIf<AnotherTestOp>
    - AnotherTestOp*::value
    - TestOp*::value
    - SqlOp::GetIf<TestOp>
    - EXPECT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(SqlOpGetIfTest, GetIfReturnsNonNullIfCorrectOpType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::GetIf<AnotherTestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:117,1
    - Dst: SqlOp::GetIf<TestOp>
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/sql_op_test.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: raksha::frontends::sql::TEST_F
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    functionUses: 0
    functionsReached:
    - SqlOp::GetIf<AnotherTestOp>
    - EXPECT_EQ
    - SqlOp::GetIf<TestOp>
    linkageType: ''
    returnType: void
    signature: void TEST_F(SqlOpGetIfTest, GetIfReturnsNullIfIncorrectOpType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:38,1
    - Dst: ir::ValueList::empty
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:38,1
    - Dst: ir::ValueList::empty
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:38,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:40,1
    - Dst: ir::ValueList::size
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:40,1
    - Dst: std::numeric_limits<int64_t>::max
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:40,1
    - Dst: static_cast<int64_t>
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:44,1
    - Dst: ir::ValueList::size
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:44,1
    - Dst: absl::c_move
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:48,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:48,1
    - Dst: absl::c_move
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:49,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:49,1
    - Dst: std::make_unique<MergeOp>
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:52,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:53,1
    - Dst: SqlOp::GetOperator<MergeOp>
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:53,1
    - Dst: ir::NamedAttributeMap
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:54,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:55,1
    - Dst: ir::Attribute::Create<ir::Int64Attribute>
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:56,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - parent_block
    - ' context'
    - direct_inputs
    - control_inputs
    argTypes:
    - ir::Block*
    - ir::IRContext
    - ir::ValueList
    - ir::ValueList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 58
    functionName: raksha::frontends::sql::MergeOp::Create
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - ir::NamedAttributeMap
    - absl::c_move
    - ir::ValueList::size
    - std::back_inserter
    - SqlOp::GetOperator<MergeOp>
    - std::move
    - std::make_unique<MergeOp>
    - CHECK
    - std::numeric_limits<int64_t>::max
    - ir::ValueList::empty
    - ir::Attribute::Create<ir::Int64Attribute>
    - static_cast<int64_t>
    - std::string
    linkageType: ''
    returnType: std::unique_ptr<MergeOp>
    signature: "std::unique_ptr<MergeOp> MergeOp::Create(const ir::Block* parent_block,\n
      \                                        const ir::IRContext& context,\n                                         ir::ValueList
      direct_inputs,\n                                         ir::ValueList control_inputs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:61,1
    - Dst: inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:61,1
    - Dst: inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:62,1
    - Dst: raksha::frontends::sql::MergeOp::GetControlInputStartIndex
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: raksha::frontends::sql::MergeOp::GetDirectInputs
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_range
    - inputs
    - raksha::frontends::sql::MergeOp::GetControlInputStartIndex
    linkageType: ''
    returnType: ir::ValueRange
    signature: ir::ValueRange MergeOp::GetDirectInputs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:66,1
    - Dst: inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:66,1
    - Dst: raksha::frontends::sql::MergeOp::GetControlInputStartIndex
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:66,1
    - Dst: inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: raksha::frontends::sql::MergeOp::GetControlInputs
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_range
    - inputs
    - raksha::frontends::sql::MergeOp::GetControlInputStartIndex
    linkageType: ''
    returnType: ir::ValueRange
    signature: ir::ValueRange MergeOp::GetControlInputs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: attributes
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:71,1
    - Dst: find
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:72,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:73,1
    - Dst: end
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:73,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:75,1
    - Dst: auto::second::GetIf
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:75,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:77,1
    - Dst: auto::value
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:77,1
    - Dst: static_cast<size_t>
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:78,1
    - Dst: auto::value
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: raksha::frontends::sql::MergeOp::GetControlInputStartIndex
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op.cc
    functionUses: 2
    functionsReached:
    - ABSL_DIE_IF_NULL
    - find
    - auto::second::GetIf
    - auto::value
    - attributes
    - CHECK
    - end
    - static_cast<size_t>
    linkageType: ''
    returnType: size_t
    signature: size_t MergeOp::GetControlInputStartIndex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:38,1
    - Dst: ir::ValueList::empty
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:38,1
    - Dst: ir::ValueList::empty
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:38,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:40,1
    - Dst: ir::ValueList::size
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:40,1
    - Dst: std::numeric_limits<int64_t>::max
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:40,1
    - Dst: static_cast<int64_t>
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:44,1
    - Dst: ir::ValueList::size
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:44,1
    - Dst: absl::c_move
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:48,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:48,1
    - Dst: absl::c_move
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:49,1
    - Dst: std::back_inserter
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:49,1
    - Dst: std::make_unique<MergeOp>
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:52,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:53,1
    - Dst: SqlOp::GetOperator<MergeOp>
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:53,1
    - Dst: ir::NamedAttributeMap
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:54,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:55,1
    - Dst: ir::Attribute::Create<ir::Int64Attribute>
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:56,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - parent_block
    - ' context'
    - direct_inputs
    - control_inputs
    argTypes:
    - ir::Block*
    - ir::IRContext
    - ir::ValueList
    - ir::ValueList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 58
    functionName: raksha::frontends::sql::MergeOp::Create
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - ir::NamedAttributeMap
    - absl::c_move
    - ir::ValueList::size
    - std::back_inserter
    - SqlOp::GetOperator<MergeOp>
    - std::move
    - std::make_unique<MergeOp>
    - CHECK
    - std::numeric_limits<int64_t>::max
    - ir::ValueList::empty
    - ir::Attribute::Create<ir::Int64Attribute>
    - static_cast<int64_t>
    - std::string
    linkageType: ''
    returnType: std::unique_ptr<MergeOp>
    signature: "std::unique_ptr<MergeOp> MergeOp::Create(const ir::Block* parent_block,\n
      \                                        const ir::IRContext& context,\n                                         ir::ValueList
      direct_inputs,\n                                         ir::ValueList control_inputs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:61,1
    - Dst: inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:61,1
    - Dst: inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:62,1
    - Dst: raksha::frontends::sql::MergeOp::GetControlInputStartIndex
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: raksha::frontends::sql::MergeOp::GetDirectInputs
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_range
    - inputs
    - raksha::frontends::sql::MergeOp::GetControlInputStartIndex
    linkageType: ''
    returnType: ir::ValueRange
    signature: ir::ValueRange MergeOp::GetDirectInputs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:66,1
    - Dst: inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:66,1
    - Dst: raksha::frontends::sql::MergeOp::GetControlInputStartIndex
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:66,1
    - Dst: inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: raksha::frontends::sql::MergeOp::GetControlInputs
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op.cc
    functionUses: 0
    functionsReached:
    - raksha::utils::make_range
    - inputs
    - raksha::frontends::sql::MergeOp::GetControlInputStartIndex
    linkageType: ''
    returnType: ir::ValueRange
    signature: ir::ValueRange MergeOp::GetControlInputs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: attributes
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:71,1
    - Dst: find
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:72,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:73,1
    - Dst: end
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:73,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:75,1
    - Dst: auto::second::GetIf
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:75,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:77,1
    - Dst: auto::value
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:77,1
    - Dst: static_cast<size_t>
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:78,1
    - Dst: auto::value
      Src: /src/raksha/src/frontends/sql/ops/merge_op.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: raksha::frontends::sql::MergeOp::GetControlInputStartIndex
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op.cc
    functionUses: 4
    functionsReached:
    - ABSL_DIE_IF_NULL
    - find
    - auto::second::GetIf
    - auto::value
    - attributes
    - CHECK
    - end
    - static_cast<size_t>
    linkageType: ''
    returnType: size_t
    signature: size_t MergeOp::GetControlInputStartIndex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ir::ValueList::push_back
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:35,1
    - Dst: ir::NamedAttributeMap::insert
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:37,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:37,1
    - Dst: ir::Attribute::Create<ir::StringAttribute>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:38,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:39,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:39,1
    - Dst: std::numeric_limits<int64_t>::max
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:39,1
    - Dst: ir::ValueList::push_back
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:41,1
    - Dst: ir::NamedAttributeMap::insert
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:42,1
    - Dst: ir::Attribute::Create<ir::Int64Attribute>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:43,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:44,1
    - Dst: std::make_unique<TagTransformOp>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:48,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:50,1
    - Dst: GetOperator
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - parent_block
    - ' context'
    - rule_name
    - transformed_value
    - ' preconditions'
    argTypes:
    - ir::Block*
    - ir::IRContext
    - absl::string_view
    - ir::Value
    - std::vector<std::pair<std::string, ir::Value>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 52
    functionName: raksha::frontends::sql::TagTransformOp::Create
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc
    functionUses: 12
    functionsReached:
    - ABSL_DIE_IF_NULL
    - ir::Attribute::Create<ir::StringAttribute>
    - GetOperator
    - CHECK
    - std::numeric_limits<int64_t>::max
    - std::make_unique<TagTransformOp>
    - ir::Attribute::Create<ir::Int64Attribute>
    - ir::ValueList::push_back
    - size
    - std::string
    - ir::NamedAttributeMap::insert
    linkageType: ''
    returnType: std::unique_ptr<TagTransformOp>
    signature: "std::unique_ptr<TagTransformOp> TagTransformOp::Create(\n    const
      ir::Block* parent_block, const ir::IRContext& context,\n    absl::string_view
      rule_name, ir::Value transformed_value,\n    const std::vector<std::pair<std::string,
      ir::Value>>& preconditions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:60,1
    - Dst: inputs
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: raksha::frontends::sql::TagTransformOp::GetTransformedValueIndex
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc
    functionUses: 0
    functionsReached:
    - inputs
    - CHECK
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t TagTransformOp::GetTransformedValueIndex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetInputValue
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:65,1
    - Dst: raksha::frontends::sql::TagTransformOp::GetTransformedValueIndex
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: raksha::frontends::sql::TagTransformOp::GetTransformedValue
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::TagTransformOp::GetTransformedValueIndex
    - GetInputValue
    linkageType: ''
    returnType: ir::Value
    signature: ir::Value TagTransformOp::GetTransformedValue() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inputs
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:71,1
    - Dst: attributes
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:72,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:75,1
    - Dst: GetIf
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:75,1
    - Dst: auto::value
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:76,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:80,1
    - Dst: static_cast<int64_t>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:81,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:81,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 86
    functionName: raksha::frontends::sql::TagTransformOp::GetPreconditions
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - absl::flat_hash_map::insert
    - auto::value
    - GetIf
    - inputs
    - attributes
    - CHECK
    - static_cast<int64_t>
    - size
    linkageType: ''
    returnType: absl::flat_hash_map<std::string, ir::Value>
    signature: "absl::flat_hash_map<std::string, ir::Value> TagTransformOp::GetPreconditions()\n
      \   const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inputs
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:91,1
    - Dst: attributes
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:92,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:95,1
    - Dst: GetIf
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:95,1
    - Dst: auto::value
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:97,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:101,1
    - Dst: static_cast<int64_t>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:102,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:102,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 107
    functionName: raksha::frontends::sql::TagTransformOp::GetPreconditionInputIndices
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - absl::flat_hash_map::insert
    - auto::value
    - GetIf
    - inputs
    - attributes
    - CHECK
    - static_cast<int64_t>
    - size
    linkageType: ''
    returnType: absl::flat_hash_map<std::string, uint64_t>
    signature: absl::flat_hash_map<std::string, uint64_t> TagTransformOp::GetPreconditionInputIndices()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: attributes
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:110,1
    - Dst: find
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:111,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:112,1
    - Dst: end
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:112,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:114,1
    - Dst: auto::second::GetIf
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:114,1
    - Dst: auto::value
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: raksha::frontends::sql::TagTransformOp::GetRuleName
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - find
    - auto::second::GetIf
    - auto::value
    - attributes
    - CHECK
    - end
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view TagTransformOp::GetRuleName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ir::ValueList::push_back
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:35,1
    - Dst: ir::NamedAttributeMap::insert
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:37,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:37,1
    - Dst: ir::Attribute::Create<ir::StringAttribute>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:38,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:39,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:39,1
    - Dst: std::numeric_limits<int64_t>::max
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:39,1
    - Dst: ir::ValueList::push_back
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:41,1
    - Dst: ir::NamedAttributeMap::insert
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:42,1
    - Dst: ir::Attribute::Create<ir::Int64Attribute>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:43,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:44,1
    - Dst: std::make_unique<TagTransformOp>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:48,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:50,1
    - Dst: GetOperator
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - parent_block
    - ' context'
    - rule_name
    - transformed_value
    - ' preconditions'
    argTypes:
    - ir::Block*
    - ir::IRContext
    - absl::string_view
    - ir::Value
    - std::vector<std::pair<std::string, ir::Value>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 52
    functionName: raksha::frontends::sql::TagTransformOp::Create
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc
    functionUses: 12
    functionsReached:
    - ABSL_DIE_IF_NULL
    - ir::Attribute::Create<ir::StringAttribute>
    - GetOperator
    - CHECK
    - std::numeric_limits<int64_t>::max
    - std::make_unique<TagTransformOp>
    - ir::Attribute::Create<ir::Int64Attribute>
    - ir::ValueList::push_back
    - size
    - std::string
    - ir::NamedAttributeMap::insert
    linkageType: ''
    returnType: std::unique_ptr<TagTransformOp>
    signature: "std::unique_ptr<TagTransformOp> TagTransformOp::Create(\n    const
      ir::Block* parent_block, const ir::IRContext& context,\n    absl::string_view
      rule_name, ir::Value transformed_value,\n    const std::vector<std::pair<std::string,
      ir::Value>>& preconditions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:60,1
    - Dst: inputs
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: raksha::frontends::sql::TagTransformOp::GetTransformedValueIndex
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc
    functionUses: 1
    functionsReached:
    - inputs
    - CHECK
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t TagTransformOp::GetTransformedValueIndex() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetInputValue
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:65,1
    - Dst: raksha::frontends::sql::TagTransformOp::GetTransformedValueIndex
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: raksha::frontends::sql::TagTransformOp::GetTransformedValue
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc
    functionUses: 0
    functionsReached:
    - raksha::frontends::sql::TagTransformOp::GetTransformedValueIndex
    - GetInputValue
    linkageType: ''
    returnType: ir::Value
    signature: ir::Value TagTransformOp::GetTransformedValue() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inputs
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:71,1
    - Dst: attributes
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:72,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:75,1
    - Dst: GetIf
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:75,1
    - Dst: auto::value
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:76,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:80,1
    - Dst: static_cast<int64_t>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:81,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:81,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 86
    functionName: raksha::frontends::sql::TagTransformOp::GetPreconditions
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - absl::flat_hash_map::insert
    - auto::value
    - GetIf
    - inputs
    - attributes
    - CHECK
    - static_cast<int64_t>
    - size
    linkageType: ''
    returnType: absl::flat_hash_map<std::string, ir::Value>
    signature: "absl::flat_hash_map<std::string, ir::Value> TagTransformOp::GetPreconditions()\n
      \   const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inputs
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:91,1
    - Dst: attributes
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:92,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:95,1
    - Dst: GetIf
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:95,1
    - Dst: auto::value
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:97,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:101,1
    - Dst: static_cast<int64_t>
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:102,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:102,1
    - Dst: absl::flat_hash_map::insert
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 107
    functionName: raksha::frontends::sql::TagTransformOp::GetPreconditionInputIndices
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - absl::flat_hash_map::insert
    - auto::value
    - GetIf
    - inputs
    - attributes
    - CHECK
    - static_cast<int64_t>
    - size
    linkageType: ''
    returnType: absl::flat_hash_map<std::string, uint64_t>
    signature: absl::flat_hash_map<std::string, uint64_t> TagTransformOp::GetPreconditionInputIndices()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: attributes
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:110,1
    - Dst: find
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:111,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:112,1
    - Dst: end
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:112,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:114,1
    - Dst: auto::second::GetIf
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:114,1
    - Dst: auto::value
      Src: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: raksha::frontends::sql::TagTransformOp::GetRuleName
    functionSourceFile: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - find
    - auto::second::GetIf
    - auto::value
    - attributes
    - CHECK
    - end
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view TagTransformOp::GetRuleName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<LiteralOp>
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:32,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:33,1
    - Dst: SqlOp::GetOperator<LiteralOp>
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:33,1
    - Dst: ir::NamedAttributeMap
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:34,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:35,1
    - Dst: ir::Attribute::Create<ir::StringAttribute>
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:36,1
    - Dst: ir::ValueList
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - parent_block
    - ' context'
    - literal
    argTypes:
    - ir::Block*
    - ir::IRContext
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: raksha::frontends::sql::LiteralOp::Create
    functionSourceFile: /src/raksha/src/frontends/sql/ops/literal_op.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - ir::NamedAttributeMap
    - std::make_unique<LiteralOp>
    - SqlOp::GetOperator<LiteralOp>
    - ir::Attribute::Create<ir::StringAttribute>
    - ir::ValueList
    - std::string
    linkageType: ''
    returnType: std::unique_ptr<LiteralOp>
    signature: "std::unique_ptr<LiteralOp> LiteralOp::Create(const ir::Block* parent_block,\n
      \                                            const ir::IRContext& context,\n
      \                                            absl::string_view literal)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: attributes
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:41,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:42,1
    - Dst: attributes
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:42,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:44,1
    - Dst: auto::GetIf
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:44,1
    - Dst: auto::value
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: raksha::frontends::sql::LiteralOp::GetLiteralString
    functionSourceFile: /src/raksha/src/frontends/sql/ops/literal_op.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - auto::value
    - attributes
    - CHECK
    - auto::GetIf
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view LiteralOp::GetLiteralString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<LiteralOp>
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:32,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:33,1
    - Dst: SqlOp::GetOperator<LiteralOp>
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:33,1
    - Dst: ir::NamedAttributeMap
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:34,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:35,1
    - Dst: ir::Attribute::Create<ir::StringAttribute>
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:36,1
    - Dst: ir::ValueList
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - parent_block
    - ' context'
    - literal
    argTypes:
    - ir::Block*
    - ir::IRContext
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: raksha::frontends::sql::LiteralOp::Create
    functionSourceFile: /src/raksha/src/frontends/sql/ops/literal_op.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - ir::NamedAttributeMap
    - std::make_unique<LiteralOp>
    - SqlOp::GetOperator<LiteralOp>
    - ir::Attribute::Create<ir::StringAttribute>
    - ir::ValueList
    - std::string
    linkageType: ''
    returnType: std::unique_ptr<LiteralOp>
    signature: "std::unique_ptr<LiteralOp> LiteralOp::Create(const ir::Block* parent_block,\n
      \                                            const ir::IRContext& context,\n
      \                                            absl::string_view literal)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: attributes
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:41,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:42,1
    - Dst: attributes
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:42,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:44,1
    - Dst: auto::GetIf
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:44,1
    - Dst: auto::value
      Src: /src/raksha/src/frontends/sql/ops/literal_op.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: raksha::frontends::sql::LiteralOp::GetLiteralString
    functionSourceFile: /src/raksha/src/frontends/sql/ops/literal_op.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - auto::value
    - attributes
    - CHECK
    - auto::GetIf
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view LiteralOp::GetLiteralString() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - CLASS
    - ','
    - OP_NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: DEFINE_OP_TRAITS
    functionSourceFile: /src/raksha/src/frontends/sql/ops/op_traits.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_OP_TRAITS(CLASS, OP_NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - CLASS
    - ','
    - OP_NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: DEFINE_OP_TRAITS
    functionSourceFile: /src/raksha/src/frontends/sql/ops/op_traits.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_OP_TRAITS(CLASS, OP_NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::SqlOp::GetOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - ir::IRContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: raksha::frontends::sql::SqlOp::GetOperator
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op.h
    functionUses: 1
    functionsReached:
    - raksha::frontends::sql::SqlOp::GetOperator
    linkageType: ''
    returnType: ir::Operator
    signature: ir::Operator * GetOperator(const ir::IRContext& context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::SqlOp::RegisterOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op.h:40,1
    - Dst: std::make_unique<ir::Operator>
      Src: /src/raksha/src/frontends/sql/ops/sql_op.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - ir::IRContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: raksha::frontends::sql::SqlOp::RegisterOperator
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op.h
    functionUses: 1
    functionsReached:
    - std::make_unique<ir::Operator>
    - raksha::frontends::sql::SqlOp::RegisterOperator
    linkageType: ''
    returnType: void
    signature: void RegisterOperator(ir::IRContext& context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: op
      Src: /src/raksha/src/frontends/sql/ops/sql_op.h:48,1
    - Dst: static_cast<const T*>
      Src: /src/raksha/src/frontends/sql/ops/sql_op.h:50,1
    - Dst: std::addressof
      Src: /src/raksha/src/frontends/sql/ops/sql_op.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - ir::Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: raksha::frontends::sql::SqlOp::GetIf
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op.h
    functionUses: 0
    functionsReached:
    - op
    - static_cast<const T*>
    - std::addressof
    linkageType: ''
    returnType: T
    signature: T * GetIf(const ir::Operation& operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: ~SqlOp()
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~SqlOp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::SqlOp::GetOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - ir::IRContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: raksha::frontends::sql::SqlOp::GetOperator
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op.h
    functionUses: 2
    functionsReached:
    - raksha::frontends::sql::SqlOp::GetOperator
    linkageType: ''
    returnType: ir::Operator
    signature: ir::Operator * GetOperator(const ir::IRContext& context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::SqlOp::RegisterOperator
      Src: /src/raksha/src/frontends/sql/ops/sql_op.h:40,1
    - Dst: std::make_unique<ir::Operator>
      Src: /src/raksha/src/frontends/sql/ops/sql_op.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - ir::IRContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: raksha::frontends::sql::SqlOp::RegisterOperator
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op.h
    functionUses: 2
    functionsReached:
    - std::make_unique<ir::Operator>
    - raksha::frontends::sql::SqlOp::RegisterOperator
    linkageType: ''
    returnType: void
    signature: void RegisterOperator(ir::IRContext& context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: op
      Src: /src/raksha/src/frontends/sql/ops/sql_op.h:48,1
    - Dst: static_cast<const T*>
      Src: /src/raksha/src/frontends/sql/ops/sql_op.h:50,1
    - Dst: std::addressof
      Src: /src/raksha/src/frontends/sql/ops/sql_op.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - ir::Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: raksha::frontends::sql::SqlOp::GetIf
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op.h
    functionUses: 0
    functionsReached:
    - op
    - static_cast<const T*>
    - std::addressof
    linkageType: ''
    returnType: T
    signature: T * GetIf(const ir::Operation& operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: ~SqlOp()
    functionSourceFile: /src/raksha/src/frontends/sql/ops/sql_op.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~SqlOp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<LiteralOp>
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:30,1
    - Dst: raksha::frontends::sql::LiteralOp::Create
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:34,1
    - Dst: std::unique_ptr::op
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:35,1
    - Dst: std::unique_ptr::parent
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:35,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:36,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:36,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:37,1
    - Dst: std::unique_ptr::attributes
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:37,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:38,1
    - Dst: raksha::ir::datalog::CheckNumberSymbolPairPair
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:38,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:39,1
    - Dst: ir::Attribute::Create<ir::StringAttribute>
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 41
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/literal_op_test.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::parent
    - EXPECT_EQ
    - std::unique_ptr::attributes
    - raksha::frontends::sql::LiteralOp::Create
    - testing::UnorderedElementsAre
    - EXPECT_TRUE
    - std::unique_ptr::op
    - ir::Attribute::Create<ir::StringAttribute>
    - std::unique_ptr::inputs
    - EXPECT_THAT
    - raksha::ir::datalog::CheckNumberSymbolPairPair
    - SqlOp::RegisterOperator<LiteralOp>
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST(LiteralOpTest, FactoryMethodCreatesCorrectOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<LiteralOp>
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:30,1
    - Dst: raksha::frontends::sql::LiteralOp::Create
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:34,1
    - Dst: std::unique_ptr::op
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:35,1
    - Dst: std::unique_ptr::parent
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:35,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:36,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:36,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:37,1
    - Dst: std::unique_ptr::attributes
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:37,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:38,1
    - Dst: raksha::ir::datalog::CheckNumberSymbolPairPair
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:38,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:39,1
    - Dst: ir::Attribute::Create<ir::StringAttribute>
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 41
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/literal_op_test.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::parent
    - EXPECT_EQ
    - std::unique_ptr::attributes
    - raksha::frontends::sql::LiteralOp::Create
    - testing::UnorderedElementsAre
    - EXPECT_TRUE
    - std::unique_ptr::op
    - ir::Attribute::Create<ir::StringAttribute>
    - std::unique_ptr::inputs
    - EXPECT_THAT
    - raksha::ir::datalog::CheckNumberSymbolPairPair
    - SqlOp::RegisterOperator<LiteralOp>
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST(LiteralOpTest, FactoryMethodCreatesCorrectOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<LiteralOp>
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:30,1
    - Dst: raksha::frontends::sql::LiteralOp::Create
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:34,1
    - Dst: std::unique_ptr::op
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:35,1
    - Dst: std::unique_ptr::parent
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:35,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:36,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:36,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:37,1
    - Dst: std::unique_ptr::attributes
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:37,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:38,1
    - Dst: raksha::ir::datalog::CheckNumberSymbolPairPair
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:38,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:39,1
    - Dst: ir::Attribute::Create<ir::StringAttribute>
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 41
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/literal_op_test.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::parent
    - EXPECT_EQ
    - std::unique_ptr::attributes
    - raksha::frontends::sql::LiteralOp::Create
    - testing::UnorderedElementsAre
    - EXPECT_TRUE
    - std::unique_ptr::op
    - ir::Attribute::Create<ir::StringAttribute>
    - std::unique_ptr::inputs
    - EXPECT_THAT
    - raksha::ir::datalog::CheckNumberSymbolPairPair
    - SqlOp::RegisterOperator<LiteralOp>
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST(LiteralOpTest, FactoryMethodCreatesCorrectOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<LiteralOp>
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:30,1
    - Dst: raksha::frontends::sql::LiteralOp::Create
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:34,1
    - Dst: std::unique_ptr::op
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:35,1
    - Dst: std::unique_ptr::parent
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:35,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:36,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:36,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:37,1
    - Dst: std::unique_ptr::attributes
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:37,1
    - Dst: testing::UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:38,1
    - Dst: raksha::ir::datalog::CheckNumberSymbolPairPair
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:38,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:39,1
    - Dst: ir::Attribute::Create<ir::StringAttribute>
      Src: /src/raksha/src/frontends/sql/ops/literal_op_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 41
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/literal_op_test.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::parent
    - EXPECT_EQ
    - std::unique_ptr::attributes
    - raksha::frontends::sql::LiteralOp::Create
    - testing::UnorderedElementsAre
    - EXPECT_TRUE
    - std::unique_ptr::op
    - ir::Attribute::Create<ir::StringAttribute>
    - std::unique_ptr::inputs
    - EXPECT_THAT
    - raksha::ir::datalog::CheckNumberSymbolPairPair
    - SqlOp::RegisterOperator<LiteralOp>
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST(LiteralOpTest, FactoryMethodCreatesCorrectOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<MergeOp>
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: raksha::frontends::sql::MergeOpTest::MergeOpTest
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - SqlOp::RegisterOperator<MergeOp>
    linkageType: ''
    returnType: void
    signature: void MergeOpTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:47,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:50,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:53,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:54,1
    - Dst: std::unique_ptr::op
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:55,1
    - Dst: std::unique_ptr::parent
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:55,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:56,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:56,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:56,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:57,1
    - Dst: ElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:58,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:59,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:59,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:59,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:60,1
    - Dst: ElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:61,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:62,1
    - Dst: std::unique_ptr::attributes
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:62,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:63,1
    - Dst: Pair
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:63,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:64,1
    - Dst: ir::Attribute::Create<ir::Int64Attribute>
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:65,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 66
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::parent
    - EXPECT_EQ
    - Pair
    - std::unique_ptr::attributes
    - std::unique_ptr::op
    - ElementsAreArray
    - raksha::frontends::sql::MergeOp::Create
    - std::unique_ptr::inputs
    - EXPECT_THAT
    - raksha::utils::make_range
    - UnorderedElementsAre
    - ir::Attribute::Create<ir::Int64Attribute>
    - size
    - std::string
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(MergeOpTest, FactoryMethodCreatesCorrectOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:69,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:71,1
    - Dst: empty
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:71,1
    - Dst: empty
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - empty
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(MergeOpTest, EnsureInputsAndEmptyInParamAreNotEmptySimultaneously)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:75,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:77,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:78,1
    - Dst: std::unique_ptr::GetControlInputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:78,1
    - Dst: ElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - ElementsAreArray
    - std::unique_ptr::GetControlInputs
    - raksha::frontends::sql::MergeOp::Create
    - EXPECT_THAT
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(MergeOpTest, GetControlInputsReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:82,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:84,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:85,1
    - Dst: std::unique_ptr::GetDirectInputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:85,1
    - Dst: ElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - ElementsAreArray
    - raksha::frontends::sql::MergeOp::Create
    - EXPECT_THAT
    - std::unique_ptr::GetDirectInputs
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(MergeOpTest, GetDirectInputsReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:89,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:92,1
    - Dst: std::unique_ptr::GetControlInputStartIndex
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:92,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::frontends::sql::MergeOp::Create
    - std::unique_ptr::GetControlInputStartIndex
    - size
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(MergeOpTest, GetControlInputStartIndexReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:99,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:100,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:100,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - raksha::backends::policy_engine::MakeOperationResultValue
    - raksha::frontends::sql::MergeOp::Create
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    linkageType: ''
    returnType: void
    signature: void TEST(MergeOpDeathTest, FailsIfMergeOpIsNotRegistered)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<MergeOp>
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:106,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:107,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - SqlOp::RegisterOperator<MergeOp>
    - raksha::frontends::sql::MergeOp::Create
    linkageType: ''
    returnType: void
    signature: void TEST(MergeOpDeathTest, FailsIfBothDirectAndControlInputsAreEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<MergeOp>
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: raksha::frontends::sql::MergeOpTest::MergeOpTest
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - SqlOp::RegisterOperator<MergeOp>
    linkageType: ''
    returnType: void
    signature: void MergeOpTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:47,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:50,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:53,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:54,1
    - Dst: std::unique_ptr::op
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:55,1
    - Dst: std::unique_ptr::parent
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:55,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:56,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:56,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:56,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:57,1
    - Dst: ElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:58,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:59,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:59,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:59,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:60,1
    - Dst: ElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:61,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:62,1
    - Dst: std::unique_ptr::attributes
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:62,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:63,1
    - Dst: Pair
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:63,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:64,1
    - Dst: ir::Attribute::Create<ir::Int64Attribute>
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:65,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 66
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::parent
    - EXPECT_EQ
    - Pair
    - std::unique_ptr::attributes
    - std::unique_ptr::op
    - ElementsAreArray
    - raksha::frontends::sql::MergeOp::Create
    - std::unique_ptr::inputs
    - EXPECT_THAT
    - raksha::utils::make_range
    - UnorderedElementsAre
    - ir::Attribute::Create<ir::Int64Attribute>
    - size
    - std::string
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(MergeOpTest, FactoryMethodCreatesCorrectOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:69,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:71,1
    - Dst: empty
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:71,1
    - Dst: empty
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - empty
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(MergeOpTest, EnsureInputsAndEmptyInParamAreNotEmptySimultaneously)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:75,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:77,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:78,1
    - Dst: std::unique_ptr::GetControlInputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:78,1
    - Dst: ElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - ElementsAreArray
    - std::unique_ptr::GetControlInputs
    - raksha::frontends::sql::MergeOp::Create
    - EXPECT_THAT
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(MergeOpTest, GetControlInputsReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:82,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:84,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:85,1
    - Dst: std::unique_ptr::GetDirectInputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:85,1
    - Dst: ElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - ElementsAreArray
    - raksha::frontends::sql::MergeOp::Create
    - EXPECT_THAT
    - std::unique_ptr::GetDirectInputs
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(MergeOpTest, GetDirectInputsReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:89,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:92,1
    - Dst: std::unique_ptr::GetControlInputStartIndex
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:92,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::frontends::sql::MergeOp::Create
    - std::unique_ptr::GetControlInputStartIndex
    - size
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(MergeOpTest, GetControlInputStartIndexReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:99,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:100,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:100,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - raksha::backends::policy_engine::MakeOperationResultValue
    - raksha::frontends::sql::MergeOp::Create
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    linkageType: ''
    returnType: void
    signature: void TEST(MergeOpDeathTest, FailsIfMergeOpIsNotRegistered)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<MergeOp>
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:106,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:107,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - SqlOp::RegisterOperator<MergeOp>
    - raksha::frontends::sql::MergeOp::Create
    linkageType: ''
    returnType: void
    signature: void TEST(MergeOpDeathTest, FailsIfBothDirectAndControlInputsAreEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<MergeOp>
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: raksha::frontends::sql::MergeOpTest::MergeOpTest
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - SqlOp::RegisterOperator<MergeOp>
    linkageType: ''
    returnType: void
    signature: void MergeOpTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:47,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:50,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:53,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:54,1
    - Dst: std::unique_ptr::op
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:55,1
    - Dst: std::unique_ptr::parent
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:55,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:56,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:56,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:56,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:57,1
    - Dst: ElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:58,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:59,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:59,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:59,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:60,1
    - Dst: ElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:61,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:62,1
    - Dst: std::unique_ptr::attributes
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:62,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:63,1
    - Dst: Pair
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:63,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:64,1
    - Dst: ir::Attribute::Create<ir::Int64Attribute>
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:65,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 66
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::parent
    - EXPECT_EQ
    - Pair
    - std::unique_ptr::attributes
    - std::unique_ptr::op
    - ElementsAreArray
    - raksha::frontends::sql::MergeOp::Create
    - std::unique_ptr::inputs
    - EXPECT_THAT
    - raksha::utils::make_range
    - UnorderedElementsAre
    - ir::Attribute::Create<ir::Int64Attribute>
    - size
    - std::string
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(MergeOpTest, FactoryMethodCreatesCorrectOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:69,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:71,1
    - Dst: empty
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:71,1
    - Dst: empty
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - empty
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(MergeOpTest, EnsureInputsAndEmptyInParamAreNotEmptySimultaneously)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:75,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:77,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:78,1
    - Dst: std::unique_ptr::GetControlInputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:78,1
    - Dst: ElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - ElementsAreArray
    - std::unique_ptr::GetControlInputs
    - raksha::frontends::sql::MergeOp::Create
    - EXPECT_THAT
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(MergeOpTest, GetControlInputsReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:82,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:84,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:85,1
    - Dst: std::unique_ptr::GetDirectInputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:85,1
    - Dst: ElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - ElementsAreArray
    - raksha::frontends::sql::MergeOp::Create
    - EXPECT_THAT
    - std::unique_ptr::GetDirectInputs
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(MergeOpTest, GetDirectInputsReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:89,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:92,1
    - Dst: std::unique_ptr::GetControlInputStartIndex
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:92,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::frontends::sql::MergeOp::Create
    - std::unique_ptr::GetControlInputStartIndex
    - size
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(MergeOpTest, GetControlInputStartIndexReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:99,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:100,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:100,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - raksha::backends::policy_engine::MakeOperationResultValue
    - raksha::frontends::sql::MergeOp::Create
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    linkageType: ''
    returnType: void
    signature: void TEST(MergeOpDeathTest, FailsIfMergeOpIsNotRegistered)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<MergeOp>
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:106,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:107,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - SqlOp::RegisterOperator<MergeOp>
    - raksha::frontends::sql::MergeOp::Create
    linkageType: ''
    returnType: void
    signature: void TEST(MergeOpDeathTest, FailsIfBothDirectAndControlInputsAreEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<MergeOp>
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: raksha::frontends::sql::MergeOpTest::MergeOpTest
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - SqlOp::RegisterOperator<MergeOp>
    linkageType: ''
    returnType: void
    signature: void MergeOpTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:47,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:50,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:53,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:54,1
    - Dst: std::unique_ptr::op
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:55,1
    - Dst: std::unique_ptr::parent
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:55,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:56,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:56,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:56,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:57,1
    - Dst: ElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:58,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:59,1
    - Dst: raksha::utils::make_range
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:59,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:59,1
    - Dst: std::unique_ptr::inputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:60,1
    - Dst: ElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:61,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:62,1
    - Dst: std::unique_ptr::attributes
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:62,1
    - Dst: UnorderedElementsAre
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:63,1
    - Dst: Pair
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:63,1
    - Dst: std::string
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:64,1
    - Dst: ir::Attribute::Create<ir::Int64Attribute>
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:65,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 66
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::parent
    - EXPECT_EQ
    - Pair
    - std::unique_ptr::attributes
    - std::unique_ptr::op
    - ElementsAreArray
    - raksha::frontends::sql::MergeOp::Create
    - std::unique_ptr::inputs
    - EXPECT_THAT
    - raksha::utils::make_range
    - UnorderedElementsAre
    - ir::Attribute::Create<ir::Int64Attribute>
    - size
    - std::string
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(MergeOpTest, FactoryMethodCreatesCorrectOperation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:69,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:71,1
    - Dst: empty
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:71,1
    - Dst: empty
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - empty
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(MergeOpTest, EnsureInputsAndEmptyInParamAreNotEmptySimultaneously)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:75,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:77,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:78,1
    - Dst: std::unique_ptr::GetControlInputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:78,1
    - Dst: ElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - ElementsAreArray
    - std::unique_ptr::GetControlInputs
    - raksha::frontends::sql::MergeOp::Create
    - EXPECT_THAT
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(MergeOpTest, GetControlInputsReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:82,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:84,1
    - Dst: EXPECT_THAT
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:85,1
    - Dst: std::unique_ptr::GetDirectInputs
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:85,1
    - Dst: ElementsAreArray
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - ElementsAreArray
    - raksha::frontends::sql::MergeOp::Create
    - EXPECT_THAT
    - std::unique_ptr::GetDirectInputs
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(MergeOpTest, GetDirectInputsReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:89,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:92,1
    - Dst: std::unique_ptr::GetControlInputStartIndex
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:92,1
    - Dst: size
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: raksha::frontends::sql::TEST_P
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - raksha::frontends::sql::MergeOp::Create
    - std::unique_ptr::GetControlInputStartIndex
    - size
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(MergeOpTest, GetControlInputStartIndexReturnsCorrectValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:99,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:100,1
    - Dst: raksha::backends::policy_engine::MakeOperationResultValue
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:100,1
    - Dst: raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - raksha::backends::policy_engine::MakeOperationResultValue
    - raksha::frontends::sql::MergeOp::Create
    - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
    linkageType: ''
    returnType: void
    signature: void TEST(MergeOpDeathTest, FailsIfMergeOpIsNotRegistered)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SqlOp::RegisterOperator<MergeOp>
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:106,1
    - Dst: EXPECT_DEATH
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:107,1
    - Dst: raksha::frontends::sql::MergeOp::Create
      Src: /src/raksha/src/frontends/sql/ops/merge_op_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: raksha::frontends::sql::TEST
    functionSourceFile: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_DEATH
    - SqlOp::RegisterOperator<MergeOp>
    - raksha::frontends::sql::MergeOp::Create
    linkageType: ''
    returnType: void
    signature: void TEST(MergeOpDeathTest, FailsIfBothDirectAndControlInputsAreEmpty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ir::Value::If
      Src: /src/raksha/src/frontends/sql/testing/utils.h:30,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/testing/utils.h:31,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/testing/utils.h:32,1
    - Dst: ir::value::OperationResult*::index
      Src: /src/raksha/src/frontends/sql/testing/utils.h:32,1
    - Dst: ir::value::OperationResult*::operation
      Src: /src/raksha/src/frontends/sql/testing/utils.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - expected_operation_result
    argTypes:
    - ir::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: raksha::frontends::sql::testing::UnwrapDefaultOperationResult
    functionSourceFile: /src/raksha/src/frontends/sql/testing/utils.h
    functionUses: 8
    functionsReached:
    - ir::value::OperationResult*::operation
    - ir::Value::If
    - ir::value::OperationResult*::index
    - CHECK
    linkageType: ''
    returnType: ir::Operation
    signature: "ir::Operation &UnwrapDefaultOperationResult(\n    ir::Value expected_operation_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::testing::UnwrapDefaultOperationResult
      Src: /src/raksha/src/frontends/sql/testing/utils.h:39,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/testing/utils.h:41,1
    - Dst: SqlOp::GetIf<SqlOutputOp>
      Src: /src/raksha/src/frontends/sql/testing/utils.h:41,1
    - Dst: SqlOutputOp::GetValueMarkedAsOutput
      Src: /src/raksha/src/frontends/sql/testing/utils.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sql_output_value
    argTypes:
    - ir::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
    functionSourceFile: /src/raksha/src/frontends/sql/testing/utils.h
    functionUses: 10
    functionsReached:
    - ABSL_DIE_IF_NULL
    - raksha::frontends::sql::testing::UnwrapDefaultOperationResult
    - SqlOp::GetIf<SqlOutputOp>
    - SqlOutputOp::GetValueMarkedAsOutput
    linkageType: ''
    returnType: ir::Value
    signature: ir::Value UnwrapTopLevelSqlOutputOp(ir::Value sql_output_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/raksha/src/frontends/sql/testing/utils.h:53,1
    - Dst: std::vector<uint64_t>::size
      Src: /src/raksha/src/frontends/sql/testing/utils.h:53,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/testing/utils.h:55,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/testing/utils.h:55,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/testing/utils.h:59,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/testing/utils.h:60,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/frontends/sql/testing/utils.h:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - top_level_proto
    - ids_to_be_filled
    argTypes:
    - std::string
    - std::vector<uint64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 61
    functionName: raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
    functionSourceFile: /src/raksha/src/frontends/sql/testing/utils.h
    functionUses: 14
    functionsReached:
    - std::vector::push_back
    - absl::StrJoin
    - std::vector::reserve
    - std::vector<uint64_t>::size
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: "std::string CreateExprArenaTextprotoWithLiteralsPrefix(\n    std::string
      top_level_proto, std::vector<uint64_t> ids_to_be_filled)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ir::Value::If
      Src: /src/raksha/src/frontends/sql/testing/utils.h:30,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/testing/utils.h:31,1
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sql/testing/utils.h:32,1
    - Dst: ir::value::OperationResult*::index
      Src: /src/raksha/src/frontends/sql/testing/utils.h:32,1
    - Dst: ir::value::OperationResult*::operation
      Src: /src/raksha/src/frontends/sql/testing/utils.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - expected_operation_result
    argTypes:
    - ir::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: raksha::frontends::sql::testing::UnwrapDefaultOperationResult
    functionSourceFile: /src/raksha/src/frontends/sql/testing/utils.h
    functionUses: 9
    functionsReached:
    - ir::value::OperationResult*::operation
    - ir::Value::If
    - ir::value::OperationResult*::index
    - CHECK
    linkageType: ''
    returnType: ir::Operation
    signature: "ir::Operation &UnwrapDefaultOperationResult(\n    ir::Value expected_operation_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raksha::frontends::sql::testing::UnwrapDefaultOperationResult
      Src: /src/raksha/src/frontends/sql/testing/utils.h:39,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sql/testing/utils.h:41,1
    - Dst: SqlOp::GetIf<SqlOutputOp>
      Src: /src/raksha/src/frontends/sql/testing/utils.h:41,1
    - Dst: SqlOutputOp::GetValueMarkedAsOutput
      Src: /src/raksha/src/frontends/sql/testing/utils.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sql_output_value
    argTypes:
    - ir::Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
    functionSourceFile: /src/raksha/src/frontends/sql/testing/utils.h
    functionUses: 10
    functionsReached:
    - ABSL_DIE_IF_NULL
    - raksha::frontends::sql::testing::UnwrapDefaultOperationResult
    - SqlOp::GetIf<SqlOutputOp>
    - SqlOutputOp::GetValueMarkedAsOutput
    linkageType: ''
    returnType: ir::Value
    signature: ir::Value UnwrapTopLevelSqlOutputOp(ir::Value sql_output_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/raksha/src/frontends/sql/testing/utils.h:53,1
    - Dst: std::vector<uint64_t>::size
      Src: /src/raksha/src/frontends/sql/testing/utils.h:53,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/testing/utils.h:55,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/testing/utils.h:55,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sql/testing/utils.h:59,1
    - Dst: absl::StrFormat
      Src: /src/raksha/src/frontends/sql/testing/utils.h:60,1
    - Dst: absl::StrJoin
      Src: /src/raksha/src/frontends/sql/testing/utils.h:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - top_level_proto
    - ids_to_be_filled
    argTypes:
    - std::string
    - std::vector<uint64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 61
    functionName: raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
    functionSourceFile: /src/raksha/src/frontends/sql/testing/utils.h
    functionUses: 14
    functionsReached:
    - std::vector::push_back
    - absl::StrJoin
    - std::vector::reserve
    - std::vector<uint64_t>::size
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: "std::string CreateExprArenaTextprotoWithLiteralsPrefix(\n    std::string
      top_level_proto, std::vector<uint64_t> ids_to_be_filled)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: ~Expr()
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Expr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: raksha::frontends::sqlite::Expr::Expr
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Expr(const Expr&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: raksha::frontends::sqlite::Expr::Expr
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Expr(Expr&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: '& operator=(const Expr&)'
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Expr
    signature: Expr & operator=(const Expr&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& operator=(Expr&&)'
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Expr
    signature: Expr & operator=(Expr&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: raksha::frontends::sqlite::Expr::Expr
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Expr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/frontends/sqlite/ast.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - sub_exprs
    argTypes:
    - std::vector<std::unique_ptr<Expr>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: raksha::frontends::sqlite::MergeExpr::MergeExpr
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void MergeExpr(std::vector<std::unique_ptr<Expr>> sub_exprs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: raksha::frontends::sqlite::MergeExpr::MergeExpr
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MergeExpr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/raksha/src/frontends/sqlite/ast.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: '& operator[](size_t index) const'
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: Expr
    signature: Expr & operator[](size_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: raksha::frontends::sqlite::LiteralValue::LiteralValue
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LiteralValue(absl::string_view value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: raksha::frontends::sqlite::LiteralValue::value
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: ~ResultColumn()
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ResultColumn()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: raksha::frontends::sqlite::ResultColumn::ResultColumn
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultColumn(const ResultColumn&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: raksha::frontends::sqlite::ResultColumn::ResultColumn
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultColumn(ResultColumn&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: '& operator=(const ResultColumn&)'
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ResultColumn
    signature: ResultColumn & operator=(const ResultColumn&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: '& operator=(ResultColumn&&)'
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ResultColumn
    signature: ResultColumn & operator=(ResultColumn&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: raksha::frontends::sqlite::ResultColumn::ResultColumn
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultColumn()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - table_name
    argTypes:
    - std::optional<absl::string_view>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: raksha::frontends::sqlite::TableStar::TableStar
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TableStar(std::optional<absl::string_view> table_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: raksha::frontends::sqlite::TableStar::table_name
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<absl::string_view>
    signature: std::optional<absl::string_view> table_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: ~Scan()
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Scan()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: raksha::frontends::sqlite::Scan::Scan
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Scan(const Scan&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: raksha::frontends::sqlite::Scan::Scan
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Scan(Scan&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: '& operator=(const Scan&)'
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Scan
    signature: Scan & operator=(const Scan&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: '& operator=(Scan&&)'
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Scan
    signature: Scan & operator=(Scan&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: raksha::frontends::sqlite::Scan::Scan
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Scan()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - table_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: raksha::frontends::sqlite::TableName::TableName
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TableName(absl::string_view table_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: raksha::frontends::sqlite::TableName::table_name
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view table_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/frontends/sqlite/ast.h:155,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sqlite/ast.h:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - is_distinct
    - result_columns
    - input_scan
    argTypes:
    - bool
    - std::vector<std::unique_ptr<ResultColumn>>
    - std::unique_ptr<Scan>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: raksha::frontends::sqlite::Select::Select
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Select(bool is_distinct,\n                  std::vector<std::unique_ptr<ResultColumn>>
      result_columns,\n                  std::unique_ptr<Scan> input_scan)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: raksha::frontends::sqlite::Select::is_distinct
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_distinct() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: raksha::frontends::sqlite::Select::is_all
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_all() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/raksha/src/frontends/sqlite/ast.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: '& operator[](size_t index) const'
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: ResultColumn
    signature: ResultColumn & operator[](size_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: '& input_scan() const'
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Scan
    signature: Scan & input_scan() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/frontends/sqlite/ast.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - stmt_list
    argTypes:
    - std::vector<std::unique_ptr<Scan>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: raksha::frontends::sqlite::Program::Program
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Program(std::vector<std::unique_ptr<Scan>> stmt_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 178
    functionName: raksha::frontends::sqlite::Program::Program
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Program()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sqlite/ast.h:181,1
    - Dst: size
      Src: /src/raksha/src/frontends/sqlite/ast.h:181,1
    - Dst: at
      Src: /src/raksha/src/frontends/sqlite/ast.h:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: '& operator[](size_t index) const'
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached:
    - size
    - at
    - CHECK
    linkageType: ''
    returnType: Scan
    signature: Scan & operator[](size_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: ~Expr()
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Expr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: raksha::frontends::sqlite::Expr::Expr
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Expr(const Expr&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: raksha::frontends::sqlite::Expr::Expr
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Expr(Expr&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: '& operator=(const Expr&)'
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Expr
    signature: Expr & operator=(const Expr&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& operator=(Expr&&)'
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Expr
    signature: Expr & operator=(Expr&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: raksha::frontends::sqlite::Expr::Expr
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Expr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/frontends/sqlite/ast.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - sub_exprs
    argTypes:
    - std::vector<std::unique_ptr<Expr>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: raksha::frontends::sqlite::MergeExpr::MergeExpr
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void MergeExpr(std::vector<std::unique_ptr<Expr>> sub_exprs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: raksha::frontends::sqlite::MergeExpr::MergeExpr
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MergeExpr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/raksha/src/frontends/sqlite/ast.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: '& operator[](size_t index) const'
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: Expr
    signature: Expr & operator[](size_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: raksha::frontends::sqlite::LiteralValue::LiteralValue
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LiteralValue(absl::string_view value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: raksha::frontends::sqlite::LiteralValue::value
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: ~ResultColumn()
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ResultColumn()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: raksha::frontends::sqlite::ResultColumn::ResultColumn
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultColumn(const ResultColumn&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: raksha::frontends::sqlite::ResultColumn::ResultColumn
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultColumn(ResultColumn&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: '& operator=(const ResultColumn&)'
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ResultColumn
    signature: ResultColumn & operator=(const ResultColumn&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: '& operator=(ResultColumn&&)'
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ResultColumn
    signature: ResultColumn & operator=(ResultColumn&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: raksha::frontends::sqlite::ResultColumn::ResultColumn
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ResultColumn()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - table_name
    argTypes:
    - std::optional<absl::string_view>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: raksha::frontends::sqlite::TableStar::TableStar
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TableStar(std::optional<absl::string_view> table_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: raksha::frontends::sqlite::TableStar::table_name
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<absl::string_view>
    signature: std::optional<absl::string_view> table_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: ~Scan()
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Scan()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: raksha::frontends::sqlite::Scan::Scan
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Scan(const Scan&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: raksha::frontends::sqlite::Scan::Scan
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Scan(Scan&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: '& operator=(const Scan&)'
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Scan
    signature: Scan & operator=(const Scan&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: '& operator=(Scan&&)'
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Scan
    signature: Scan & operator=(Scan&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: raksha::frontends::sqlite::Scan::Scan
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Scan()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - table_name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: raksha::frontends::sqlite::TableName::TableName
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TableName(absl::string_view table_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: raksha::frontends::sqlite::TableName::table_name
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view table_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/frontends/sqlite/ast.h:155,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sqlite/ast.h:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - is_distinct
    - result_columns
    - input_scan
    argTypes:
    - bool
    - std::vector<std::unique_ptr<ResultColumn>>
    - std::unique_ptr<Scan>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: raksha::frontends::sqlite::Select::Select
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Select(bool is_distinct,\n                  std::vector<std::unique_ptr<ResultColumn>>
      result_columns,\n                  std::unique_ptr<Scan> input_scan)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: raksha::frontends::sqlite::Select::is_distinct
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_distinct() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: raksha::frontends::sqlite::Select::is_all
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_all() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/raksha/src/frontends/sqlite/ast.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: '& operator[](size_t index) const'
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: ResultColumn
    signature: ResultColumn & operator[](size_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: '& input_scan() const'
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Scan
    signature: Scan & input_scan() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/raksha/src/frontends/sqlite/ast.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - stmt_list
    argTypes:
    - std::vector<std::unique_ptr<Scan>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: raksha::frontends::sqlite::Program::Program
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Program(std::vector<std::unique_ptr<Scan>> stmt_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 178
    functionName: raksha::frontends::sqlite::Program::Program
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Program()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/raksha/src/frontends/sqlite/ast.h:181,1
    - Dst: size
      Src: /src/raksha/src/frontends/sqlite/ast.h:181,1
    - Dst: at
      Src: /src/raksha/src/frontends/sqlite/ast.h:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: '& operator[](size_t index) const'
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast.h
    functionUses: 0
    functionsReached:
    - size
    - at
    - CHECK
    linkageType: ''
    returnType: Scan
    signature: Scan & operator[](size_t index) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:32,1
    - Dst: LiteralValue::value
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - LiteralValue::value
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, LiteralTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:37,1
    - Dst: std::make_unique<LiteralValue>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:37,1
    - Dst: LiteralValue
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:37,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:38,1
    - Dst: std::make_unique<LiteralValue>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:38,1
    - Dst: LiteralValue
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:40,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:40,1
    - Dst: dynamic_cast<const LiteralValue*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:43,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:43,1
    - Dst: dynamic_cast<const LiteralValue*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - EXPECT_EQ
    - std::vector::push_back
    - std::make_unique<LiteralValue>
    - dynamic_cast<const LiteralValue*>
    - LiteralValue
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, ExprTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:50,1
    - Dst: TableStar::table_name
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - TableStar::table_name
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, TableStarTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:55,1
    - Dst: TableName::table_name
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - TableName::table_name
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, TableTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:60,1
    - Dst: std::make_unique<TableStar>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:60,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:61,1
    - Dst: std::make_unique<TableName>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:63,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:63,1
    - Dst: dynamic_cast<const TableStar*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:63,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:66,1
    - Dst: Select::is_all
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:66,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:67,1
    - Dst: Select::is_distinct
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:68,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:69,1
    - Dst: dynamic_cast<const TableName*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:69,1
    - Dst: Select::input_scan
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:69,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:73,1
    - Dst: std::make_unique<TableName>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:74,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:75,1
    - Dst: Select::is_distinct
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:75,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:76,1
    - Dst: Select::is_all
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:77,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:78,1
    - Dst: dynamic_cast<const TableName*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:78,1
    - Dst: Select::input_scan
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 81
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - std::make_unique<TableName>
    - EXPECT_EQ
    - std::vector::push_back
    - Select::is_all
    - EXPECT_TRUE
    - EXPECT_FALSE
    - Select::input_scan
    - std::make_unique<TableStar>
    - std::move
    - dynamic_cast<const TableStar*>
    - Select::is_distinct
    - dynamic_cast<const TableName*>
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, StmtTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:86,1
    - Dst: std::make_unique<TableStar>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:86,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:87,1
    - Dst: std::make_unique<Select>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:88,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:88,1
    - Dst: std::make_unique<TableName>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:89,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:92,1
    - Dst: dynamic_cast<const Select*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:93,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:93,1
    - Dst: dynamic_cast<const TableName*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:93,1
    - Dst: input_scan
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:97,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:97,1
    - Dst: dynamic_cast<const TableStar*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:98,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:101,1
    - Dst: is_all
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:101,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:102,1
    - Dst: is_distinct
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 103
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - std::make_unique<TableName>
    - EXPECT_EQ
    - std::vector::push_back
    - dynamic_cast<const Select*>
    - EXPECT_TRUE
    - EXPECT_FALSE
    - is_distinct
    - input_scan
    - std::make_unique<TableStar>
    - std::make_unique<Select>
    - std::move
    - is_all
    - dynamic_cast<const TableStar*>
    - dynamic_cast<const TableName*>
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, ProgramTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:32,1
    - Dst: LiteralValue::value
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - LiteralValue::value
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, LiteralTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:37,1
    - Dst: std::make_unique<LiteralValue>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:37,1
    - Dst: LiteralValue
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:37,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:38,1
    - Dst: std::make_unique<LiteralValue>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:38,1
    - Dst: LiteralValue
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:40,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:40,1
    - Dst: dynamic_cast<const LiteralValue*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:43,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:43,1
    - Dst: dynamic_cast<const LiteralValue*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - EXPECT_EQ
    - std::vector::push_back
    - std::make_unique<LiteralValue>
    - dynamic_cast<const LiteralValue*>
    - LiteralValue
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, ExprTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:50,1
    - Dst: TableStar::table_name
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - TableStar::table_name
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, TableStarTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:55,1
    - Dst: TableName::table_name
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - TableName::table_name
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, TableTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:60,1
    - Dst: std::make_unique<TableStar>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:60,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:61,1
    - Dst: std::make_unique<TableName>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:63,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:63,1
    - Dst: dynamic_cast<const TableStar*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:63,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:66,1
    - Dst: Select::is_all
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:66,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:67,1
    - Dst: Select::is_distinct
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:68,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:69,1
    - Dst: dynamic_cast<const TableName*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:69,1
    - Dst: Select::input_scan
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:69,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:73,1
    - Dst: std::make_unique<TableName>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:74,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:75,1
    - Dst: Select::is_distinct
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:75,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:76,1
    - Dst: Select::is_all
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:77,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:78,1
    - Dst: dynamic_cast<const TableName*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:78,1
    - Dst: Select::input_scan
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 81
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - std::make_unique<TableName>
    - EXPECT_EQ
    - std::vector::push_back
    - Select::is_all
    - EXPECT_TRUE
    - EXPECT_FALSE
    - Select::input_scan
    - std::make_unique<TableStar>
    - std::move
    - dynamic_cast<const TableStar*>
    - Select::is_distinct
    - dynamic_cast<const TableName*>
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, StmtTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:86,1
    - Dst: std::make_unique<TableStar>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:86,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:87,1
    - Dst: std::make_unique<Select>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:88,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:88,1
    - Dst: std::make_unique<TableName>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:89,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:92,1
    - Dst: dynamic_cast<const Select*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:93,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:93,1
    - Dst: dynamic_cast<const TableName*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:93,1
    - Dst: input_scan
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:97,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:97,1
    - Dst: dynamic_cast<const TableStar*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:98,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:101,1
    - Dst: is_all
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:101,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:102,1
    - Dst: is_distinct
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 103
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - std::make_unique<TableName>
    - EXPECT_EQ
    - std::vector::push_back
    - dynamic_cast<const Select*>
    - EXPECT_TRUE
    - EXPECT_FALSE
    - is_distinct
    - input_scan
    - std::make_unique<TableStar>
    - std::make_unique<Select>
    - std::move
    - is_all
    - dynamic_cast<const TableStar*>
    - dynamic_cast<const TableName*>
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, ProgramTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:32,1
    - Dst: LiteralValue::value
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - LiteralValue::value
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, LiteralTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:37,1
    - Dst: std::make_unique<LiteralValue>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:37,1
    - Dst: LiteralValue
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:37,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:38,1
    - Dst: std::make_unique<LiteralValue>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:38,1
    - Dst: LiteralValue
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:40,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:40,1
    - Dst: dynamic_cast<const LiteralValue*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:43,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:43,1
    - Dst: dynamic_cast<const LiteralValue*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - EXPECT_EQ
    - std::vector::push_back
    - std::make_unique<LiteralValue>
    - dynamic_cast<const LiteralValue*>
    - LiteralValue
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, ExprTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:50,1
    - Dst: TableStar::table_name
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - TableStar::table_name
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, TableStarTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:55,1
    - Dst: TableName::table_name
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - TableName::table_name
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, TableTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:60,1
    - Dst: std::make_unique<TableStar>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:60,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:61,1
    - Dst: std::make_unique<TableName>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:63,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:63,1
    - Dst: dynamic_cast<const TableStar*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:63,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:66,1
    - Dst: Select::is_all
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:66,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:67,1
    - Dst: Select::is_distinct
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:68,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:69,1
    - Dst: dynamic_cast<const TableName*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:69,1
    - Dst: Select::input_scan
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:69,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:73,1
    - Dst: std::make_unique<TableName>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:74,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:75,1
    - Dst: Select::is_distinct
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:75,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:76,1
    - Dst: Select::is_all
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:77,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:78,1
    - Dst: dynamic_cast<const TableName*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:78,1
    - Dst: Select::input_scan
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 81
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - std::make_unique<TableName>
    - EXPECT_EQ
    - std::vector::push_back
    - Select::is_all
    - EXPECT_TRUE
    - EXPECT_FALSE
    - Select::input_scan
    - std::make_unique<TableStar>
    - std::move
    - dynamic_cast<const TableStar*>
    - Select::is_distinct
    - dynamic_cast<const TableName*>
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, StmtTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:86,1
    - Dst: std::make_unique<TableStar>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:86,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:87,1
    - Dst: std::make_unique<Select>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:88,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:88,1
    - Dst: std::make_unique<TableName>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:89,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:92,1
    - Dst: dynamic_cast<const Select*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:93,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:93,1
    - Dst: dynamic_cast<const TableName*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:93,1
    - Dst: input_scan
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:97,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:97,1
    - Dst: dynamic_cast<const TableStar*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:98,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:101,1
    - Dst: is_all
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:101,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:102,1
    - Dst: is_distinct
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 103
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - std::make_unique<TableName>
    - EXPECT_EQ
    - std::vector::push_back
    - dynamic_cast<const Select*>
    - EXPECT_TRUE
    - EXPECT_FALSE
    - is_distinct
    - input_scan
    - std::make_unique<TableStar>
    - std::make_unique<Select>
    - std::move
    - is_all
    - dynamic_cast<const TableStar*>
    - dynamic_cast<const TableName*>
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, ProgramTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:32,1
    - Dst: LiteralValue::value
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - LiteralValue::value
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, LiteralTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:37,1
    - Dst: std::make_unique<LiteralValue>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:37,1
    - Dst: LiteralValue
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:37,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:38,1
    - Dst: std::make_unique<LiteralValue>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:38,1
    - Dst: LiteralValue
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:40,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:40,1
    - Dst: dynamic_cast<const LiteralValue*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:43,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:43,1
    - Dst: dynamic_cast<const LiteralValue*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - EXPECT_EQ
    - std::vector::push_back
    - std::make_unique<LiteralValue>
    - dynamic_cast<const LiteralValue*>
    - LiteralValue
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, ExprTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:50,1
    - Dst: TableStar::table_name
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - TableStar::table_name
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, TableStarTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:55,1
    - Dst: TableName::table_name
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - TableName::table_name
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, TableTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:60,1
    - Dst: std::make_unique<TableStar>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:60,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:61,1
    - Dst: std::make_unique<TableName>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:63,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:63,1
    - Dst: dynamic_cast<const TableStar*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:63,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:66,1
    - Dst: Select::is_all
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:66,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:67,1
    - Dst: Select::is_distinct
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:68,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:69,1
    - Dst: dynamic_cast<const TableName*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:69,1
    - Dst: Select::input_scan
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:69,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:73,1
    - Dst: std::make_unique<TableName>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:74,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:75,1
    - Dst: Select::is_distinct
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:75,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:76,1
    - Dst: Select::is_all
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:77,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:78,1
    - Dst: dynamic_cast<const TableName*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:78,1
    - Dst: Select::input_scan
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 81
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - std::make_unique<TableName>
    - EXPECT_EQ
    - std::vector::push_back
    - Select::is_all
    - EXPECT_TRUE
    - EXPECT_FALSE
    - Select::input_scan
    - std::make_unique<TableStar>
    - std::move
    - dynamic_cast<const TableStar*>
    - Select::is_distinct
    - dynamic_cast<const TableName*>
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, StmtTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:86,1
    - Dst: std::make_unique<TableStar>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:86,1
    - Dst: std::vector::push_back
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:87,1
    - Dst: std::make_unique<Select>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:88,1
    - Dst: std::move
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:88,1
    - Dst: std::make_unique<TableName>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:89,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:92,1
    - Dst: dynamic_cast<const Select*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:93,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:93,1
    - Dst: dynamic_cast<const TableName*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:93,1
    - Dst: input_scan
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:97,1
    - Dst: ABSL_DIE_IF_NULL
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:97,1
    - Dst: dynamic_cast<const TableStar*>
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:98,1
    - Dst: EXPECT_TRUE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:101,1
    - Dst: is_all
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:101,1
    - Dst: EXPECT_FALSE
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:102,1
    - Dst: is_distinct
      Src: /src/raksha/src/frontends/sqlite/ast_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 103
    functionName: raksha::frontends::sqlite::TEST
    functionSourceFile: /src/raksha/src/frontends/sqlite/ast_test.cc
    functionUses: 0
    functionsReached:
    - ABSL_DIE_IF_NULL
    - std::make_unique<TableName>
    - EXPECT_EQ
    - std::vector::push_back
    - dynamic_cast<const Select*>
    - EXPECT_TRUE
    - EXPECT_FALSE
    - is_distinct
    - input_scan
    - std::make_unique<TableStar>
    - std::make_unique<Select>
    - std::move
    - is_all
    - dynamic_cast<const TableStar*>
    - dynamic_cast<const TableName*>
    linkageType: ''
    returnType: void
    signature: void TEST(SqliteAstTestSuite, ProgramTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1
      start: 1
    functionDepth: 0
    functionLinenumber: 1
    functionLinenumberEnd: 1
    functionName: main
    functionSourceFile: /src/raksha/gcb/rbe/configs/path/cc/tools/cpp/empty.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main()
Fuzzer filename: empty-file.cpp
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- absl/container/flat_hash_map.h
- absl/flags/usage.h
- src/parser/ir/ir_parser.h
- google/protobuf/text_format.h
- src/ir/selector.h
- src/analysis/taint/abstract_semantics.h
- src/ir/block_builder.h
- src/backends/policy_engine/auth_logic_policy.h
- src/ir/data_decl.h
- attribute.h
- iterator
- src/ir/storage.h
- limits
- stdexcept
- src/analysis/taint/abstract_ifc_tags.h
- src/ir/datalog/program.h
- src/ir/ir_printer.h
- src/backends/policy_engine/sql_policy_rule_policy.h
- ast_string.h
- src/frontends/sql/ops/sql_op.h
- src/ir/types/proto/schema.h
- src/analysis/taint/inference_rules.h
- absl/log/check.h
- deque
- src/ir/auth_logic/lowering_ast_datalog.h
- absl/hash/hash_testing.h
- src/frontends/sql/ops/example_value_test_helper.h
- src/common/utils/fold.h
- src/ir/ir_context.h
- src/ir/dot/dot_generator.h
- src/analysis/common/worklist_fixpoint_iterator.h
- src/ir/attributes/int_attribute.h
- src/frontends/sql/testing/utils.h
- gtest/gtest.h
- src/ir/datalog/input_relation_fact.h
- src/common/utils/test/utils.h
- tuple
- src/analysis/souffle/functors.h
- src/common/utils/ref_counter.h
- absl/log/log.h
- src/parser/ir/ir_parser_generator_grammar.inc/ir_parser_generator/IrParser.h
- src/ir/attributes/attribute.h
- cstring
- absl/strings/numbers.h
- src/ir/types/type.h
- src/ir/types/schema.h
- src/frontends/ambient/policy_checker.h
- fuzztest/fuzztest.h
- src/ir/attributes/float_attribute.h
- re2/re2.h
- src/parser/ir/ir_parser_generator_grammar.inc/ir_parser_generator/IrBaseVisitor.h
- absl/strings/str_format.h
- src/frontends/sql/decoder_context.h
- datalog_lowering_visitor.h
- absl/hash/hash.h
- google/protobuf/util/message_differencer.h
- souffle/SymbolTable.h
- absl/strings/substitute.h
- src/common/utils/ref_counted.h
- src/ir/types/entity_type.h
- src/backends/policy_engine/souffle/souffle_policy_checker.h
- src/common/utils/intrusive_ptr.h
- program.h
- src/frontends/sqlite/ast.h
- src/policy/parser.h
- src/frontends/sql/ops/tag_transform_op.h
- src/frontends/sql/driver.h
- src/ir/types/proto/type.h
- src/frontends/sql/ops/merge_op.h
- src/ir/value.h
- src/ir/auth_logic/ast.h
- cfloat
- src/ir/ir_traversing_visitor.h
- src/policy/auth_logic/auth_logic_cc_generator_grammar.inc/auth_logic_cc_generator/AuthLogicParser.h
- absl/strings/match.h
- src/common/utils/iterator_range.h
- absl/flags/flag.h
- src/ir/types/type_factory.h
- utility
- absl/container/btree_set.h
- functional
- src/frontends/sql/decode_sql_policy_rules.h
- src/frontends/sql/decode.h
- src/ir/types/primitive_type.h
- cerrno
- src/frontends/sql/ops/literal_op.h
- src/ir/module.h
- src/ir/access_path_selectors.h
- src/frontends/sql/ops/sql_output_op.h
- absl/log/die_if_null.h
- src/frontends/sql/ops/op_traits.h
- src/ir/auth_logic/ast_construction.h
- src/ir/access_path_selectors_set.h
- souffle/datastructure/SymbolTableImpl.h
- functors.h
- cstdio
- src/backends/policy_engine/policy.h
- src/ir/auth_logic/souffle_emitter.h
- src/ir/types/proto/entity_type.h
- src/ir/datalog/attribute.h
- gmock/gmock.h
- src/common/logging/logging.h
- absl/strings/str_cat.h
- src/backends/policy_engine/souffle/datalog_lowering_visitor.h
- cmath
- src/backends/policy_engine/souffle/raksha_datalog_facts.h
- type_traits
- filesystem
- google/protobuf/util/json_util.h
- src/ir/value_string_converter.h
- absl/algorithm/container.h
- src/ir/attributes/string_attribute.h
- src/ir/ir_to_proto.h
- src/analysis/common/module_fixpoint_iterator.h
- src/analysis/common/module_graph.h
- src/ir/proto/raksha_type.pb.h
- src/ir/auth_logic/universe_relation_insertion.h
- iostream
- src/ir/dot/dot_generator_config.h
- absl/status/statusor.h
- unordered_set
- src/policy/policy_cc_generator_grammar.inc/policy_cc_generator/PolicyLexer.h
- src/common/utils/filesystem.h
- src/ir/operator.h
- src/ir/auth_logic/auth_logic_ast_visitor.h
- src/common/utils/types.h
- fstream
- src/ir/auth_logic/is_name_constant.h
- src/ir/auth_logic/declaration_environment.h
- absl/container/flat_hash_set.h
- absl/strings/string_view.h
- absl/base/attributes.h
- src/common/testing/gtest.h
- absl/strings/str_split.h
- cstddef
- src/ir/auth_logic/type_environment.h
- src/common/utils/iterator_adapter.h
- src/backends/policy_engine/policy_checker.h
- src/policy/policy_cc_generator_grammar.inc/policy_cc_generator/PolicyParser.h
- absl/flags/parse.h
- souffle_emitter.h
- absl/status/status.h
- souffle/RecordTable.h
- src/frontends/sql/name_and_string_test.h
- memory
- src/parser/ir/ir_parser_generator_grammar.inc/ir_parser_generator/IrLexer.h
- absl/strings/str_join.h
- src/ir/datalog/operation.h
- src/common/utils/overloaded.h
- src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
- absl/strings/str_replace.h
- cstdint
- cstdlib
- variant
- src/common/utils/ranges.h
- src/backends/policy_engine/souffle/utils.h
- src/ir/proto_to_ir.h
- src/ir/field_selector.h
- src/ir/types/proto/primitive_type.h
- typeindex
- src/analysis/taint/inference_rules_builder.h
- src/ir/ir_visitor.h
- sstream
- optional
- souffle/SouffleInterface.h
- src/common/utils/test/dl_string_extractor/datalog_string.h
- src/ir/proto/raksha_ir.pb.h
- forward_list
- algorithm
- src/backends/policy_engine/catchall_policy_rule_policy.h
- any
- src/ir/auth_logic/ast_string.h
- src/analysis/taint/inference_rule.h
- vector
- src/ir/datalog/value.h
- string
- errno.h
- src/policy/auth_logic/auth_logic_cc_generator_grammar.inc/auth_logic_cc_generator/AuthLogicLexer.h
- src/backends/policy_engine/dp_parameter_policy.h
- src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.h
- src/ir/ssa_names.h
- src/common/utils/map_iter.h
- src/frontends/sql/sql_ir.pb.h
- souffle/datastructure/RecordTableImpl.h
report: name
sources:
- function_names:
  - raksha::analysis::taint::InferenceRulesTest::InferenceRulesTest
  - '& rules() const'
  - '& plus() const'
  - '& minus() const'
  - '& unregistered_op() const'
  - raksha::analysis::taint::InferenceRulesTest::tag_a
  - raksha::analysis::taint::InferenceRulesTest::tag_b
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::InferenceRulesTest::InferenceRulesTest
  - '& rules() const'
  - '& plus() const'
  - '& minus() const'
  - '& unregistered_op() const'
  - raksha::analysis::taint::InferenceRulesTest::tag_a
  - raksha::analysis::taint::InferenceRulesTest::tag_b
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::InferenceRulesTest::InferenceRulesTest
  - '& rules() const'
  - '& plus() const'
  - '& minus() const'
  - '& unregistered_op() const'
  - raksha::analysis::taint::InferenceRulesTest::tag_a
  - raksha::analysis::taint::InferenceRulesTest::tag_b
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::InferenceRulesTest::InferenceRulesTest
  - '& rules() const'
  - '& plus() const'
  - '& minus() const'
  - '& unregistered_op() const'
  - raksha::analysis::taint::InferenceRulesTest::tag_a
  - raksha::analysis::taint::InferenceRulesTest::tag_b
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  - raksha::analysis::taint::TEST_F
  source_file: /src/raksha/src/analysis/taint/inference_rules_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::analysis::taint::IndexInBounds
  - raksha::analysis::taint::IndexInBounds
  - raksha::analysis::taint::AbstractSemantics::ApplyDefaultOperationTransformer
  - raksha::analysis::taint::InteprepretMergeIntegrityTags
  - raksha::analysis::taint::InteprepretMergeIntegrityTags
  - raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
  - raksha::analysis::taint::AbstractSemantics::ApplyOperationTransformer
  - raksha::analysis::taint::AbstractSemantics::GetInitialState
  - raksha::analysis::taint::IndexInBounds
  - raksha::analysis::taint::IndexInBounds
  - raksha::analysis::taint::AbstractSemantics::ApplyDefaultOperationTransformer
  - raksha::analysis::taint::InteprepretMergeIntegrityTags
  - raksha::analysis::taint::InteprepretMergeIntegrityTags
  - raksha::analysis::taint::AbstractSemantics::InterpretInferenceRule
  - raksha::analysis::taint::AbstractSemantics::ApplyOperationTransformer
  - raksha::analysis::taint::AbstractSemantics::GetInitialState
  source_file: /src/raksha/src/analysis/taint/abstract_semantics.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::analysis::taint::InferenceRulesBuilder::InferenceRulesBuilder
  - raksha::analysis::taint::InferenceRulesBuilder::Build
  - raksha::analysis::taint::InferenceRulesBuilder::MarkOperationAsAction
  - raksha::analysis::taint::InferenceRulesBuilder::AddOutputRulesForAction
  - raksha::analysis::taint::InferenceRulesBuilder::GetOrCreateTagId
  - raksha::analysis::taint::InferenceRulesBuilder::InferenceRulesBuilder
  - raksha::analysis::taint::InferenceRulesBuilder::Build
  - raksha::analysis::taint::InferenceRulesBuilder::MarkOperationAsAction
  - raksha::analysis::taint::InferenceRulesBuilder::AddOutputRulesForAction
  - raksha::analysis::taint::InferenceRulesBuilder::GetOrCreateTagId
  source_file: /src/raksha/src/analysis/taint/inference_rules_builder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
  - raksha::analysis::taint::AbstractIfcTags::Bottom
  - raksha::analysis::taint::AbstractIfcTags::IsBottom
  - raksha::analysis::taint::AbstractIfcTags::IsEquivalentTo
  - raksha::analysis::taint::AbstractIfcTags::Join
  - raksha::analysis::taint::AbstractIfcTags::SetIntegrity
  - raksha::analysis::taint::AbstractIfcTags::ClearIntegrity
  - raksha::analysis::taint::AbstractIfcTags::SetSecrecy
  - raksha::analysis::taint::AbstractIfcTags::ClearSecrecy
  - '& AbstractIfcTags::secrecy_tags() const'
  - '& AbstractIfcTags::integrity_tags() const'
  - raksha::analysis::taint::AbstractIfcTags::HasIntegrity
  - raksha::analysis::taint::AbstractIfcTags::HasNoSecrecy
  - raksha::analysis::taint::AbstractIfcTags::ToString
  - raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
  - raksha::analysis::taint::AbstractIfcTags::Bottom
  - raksha::analysis::taint::AbstractIfcTags::IsBottom
  - raksha::analysis::taint::AbstractIfcTags::IsEquivalentTo
  - raksha::analysis::taint::AbstractIfcTags::Join
  - raksha::analysis::taint::AbstractIfcTags::SetIntegrity
  - raksha::analysis::taint::AbstractIfcTags::ClearIntegrity
  - raksha::analysis::taint::AbstractIfcTags::SetSecrecy
  - raksha::analysis::taint::AbstractIfcTags::ClearSecrecy
  - '& AbstractIfcTags::secrecy_tags() const'
  - '& AbstractIfcTags::integrity_tags() const'
  - raksha::analysis::taint::AbstractIfcTags::HasIntegrity
  - raksha::analysis::taint::AbstractIfcTags::HasNoSecrecy
  - raksha::analysis::taint::AbstractIfcTags::ToString
  source_file: /src/raksha/src/analysis/taint/abstract_ifc_tags.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::analysis::taint::InferenceRules::InferenceRules
  - '& action_rules() const'
  - "& actions()\n      const"
  - '& tags() const'
  - '& tag_names() const'
  - raksha::analysis::taint::InferenceRules::GetTagId
  - raksha::analysis::taint::InferenceRules::GetTagName
  - raksha::analysis::taint::InferenceRules::GetOutputRulesForAction
  - raksha::analysis::taint::InferenceRules::GetOutputRulesForOperation
  - raksha::analysis::taint::InferenceRules::InferenceRules
  - '& action_rules() const'
  - "& actions()\n      const"
  - '& tags() const'
  - '& tag_names() const'
  - raksha::analysis::taint::InferenceRules::GetTagId
  - raksha::analysis::taint::InferenceRules::GetTagName
  - raksha::analysis::taint::InferenceRules::GetOutputRulesForAction
  - raksha::analysis::taint::InferenceRules::GetOutputRulesForOperation
  source_file: /src/raksha/src/analysis/taint/inference_rules.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST_P
  source_file: /src/raksha/src/analysis/taint/inference_rule_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  source_file: /src/raksha/src/analysis/taint/inference_rules_builder_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - "operator==(const InputHasIntegrity& lhs,\n                       const InputHasIntegrity&
    rhs)"
  - "operator!=(const InputHasIntegrity& lhs,\n                       const InputHasIntegrity&
    rhs)"
  - operator==(const CopyInput& lhs, const CopyInput& rhs)
  - operator!=(const CopyInput& lhs, const CopyInput& rhs)
  - "operator==(const MergeIntegrityTags& lhs,\n                       const MergeIntegrityTags&
    rhs)"
  - "operator!=(const MergeIntegrityTags& lhs,\n                       const MergeIntegrityTags&
    rhs)"
  - operator==(const ModifyTag& lhs, const ModifyTag& rhs)
  - operator!=(const ModifyTag& lhs, const ModifyTag& rhs)
  - operator==(const InferenceRule& lhs, const InferenceRule& rhs)
  - operator!=(const InferenceRule& lhs, const InferenceRule& rhs)
  - "operator==(const InputHasIntegrity& lhs,\n                       const InputHasIntegrity&
    rhs)"
  - "operator!=(const InputHasIntegrity& lhs,\n                       const InputHasIntegrity&
    rhs)"
  - operator==(const CopyInput& lhs, const CopyInput& rhs)
  - operator!=(const CopyInput& lhs, const CopyInput& rhs)
  - "operator==(const MergeIntegrityTags& lhs,\n                       const MergeIntegrityTags&
    rhs)"
  - "operator!=(const MergeIntegrityTags& lhs,\n                       const MergeIntegrityTags&
    rhs)"
  - operator==(const ModifyTag& lhs, const ModifyTag& rhs)
  - operator!=(const ModifyTag& lhs, const ModifyTag& rhs)
  - operator==(const InferenceRule& lhs, const InferenceRule& rhs)
  - operator!=(const InferenceRule& lhs, const InferenceRule& rhs)
  source_file: /src/raksha/src/analysis/taint/inference_rule.h
  types:
    enum:
    - enumerators:
      - name: kUnion
      - name: kIntersect
      item_type: enum
      name: Kind
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/raksha/src/analysis/taint/inference_rule.h
    - enumerators:
      - name: kAddSecrecy
      - name: kAddIntegrity
      - name: kRemoveSecrecy
      item_type: enum
      name: Kind
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/raksha/src/analysis/taint/inference_rule.h
    - enumerators:
      - name: kUnion
      - name: kIntersect
      item_type: enum
      name: Kind
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/raksha/src/analysis/taint/inference_rule.h
    - enumerators:
      - name: kAddSecrecy
      - name: kAddIntegrity
      - name: kRemoveSecrecy
      item_type: enum
      name: Kind
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/raksha/src/analysis/taint/inference_rule.h
    preproc_defs: []
    structs:
    - fields:
      - name: input_index
        type: uint64_t
      - name: tag
        type: TagId
      item_type: struct
      name: InputHasIntegrity
      pos:
        line_end: 31
        line_start: 28
        source_file: /src/raksha/src/analysis/taint/inference_rule.h
    - fields:
      - name: input_index
        type: uint64_t
      item_type: struct
      name: CopyInput
      pos:
        line_end: 46
        line_start: 44
        source_file: /src/raksha/src/analysis/taint/inference_rule.h
    - fields:
      - name: kind
        type: Kind
      - name: input_indices
        type: std::vector<uint64_t>
      item_type: struct
      name: MergeIntegrityTags
      pos:
        line_end: 61
        line_start: 57
        source_file: /src/raksha/src/analysis/taint/inference_rule.h
    - fields:
      - name: kind
        type: Kind
      - name: tag
        type: TagId
      item_type: struct
      name: ModifyTag
      pos:
        line_end: 78
        line_start: 74
        source_file: /src/raksha/src/analysis/taint/inference_rule.h
    - fields:
      - name: conclusion
        type: Conclusion
      - name: premises
        type: std::vector<InputHasIntegrity>
      item_type: struct
      name: InferenceRule
      pos:
        line_end: 95
        line_start: 92
        source_file: /src/raksha/src/analysis/taint/inference_rule.h
    - fields:
      - name: input_index
        type: uint64_t
      - name: tag
        type: TagId
      item_type: struct
      name: InputHasIntegrity
      pos:
        line_end: 31
        line_start: 28
        source_file: /src/raksha/src/analysis/taint/inference_rule.h
    - fields:
      - name: input_index
        type: uint64_t
      item_type: struct
      name: CopyInput
      pos:
        line_end: 46
        line_start: 44
        source_file: /src/raksha/src/analysis/taint/inference_rule.h
    - fields:
      - name: kind
        type: Kind
      - name: input_indices
        type: std::vector<uint64_t>
      item_type: struct
      name: MergeIntegrityTags
      pos:
        line_end: 61
        line_start: 57
        source_file: /src/raksha/src/analysis/taint/inference_rule.h
    - fields:
      - name: kind
        type: Kind
      - name: tag
        type: TagId
      item_type: struct
      name: ModifyTag
      pos:
        line_end: 78
        line_start: 74
        source_file: /src/raksha/src/analysis/taint/inference_rule.h
    - fields:
      - name: conclusion
        type: Conclusion
      - name: premises
        type: std::vector<InputHasIntegrity>
      item_type: struct
      name: InferenceRule
      pos:
        line_end: 95
        line_start: 92
        source_file: /src/raksha/src/analysis/taint/inference_rule.h
    typedefs: []
    union: []
- function_names:
  - raksha::analysis::taint::AbstractSemantics::AbstractSemantics
  - raksha::analysis::taint::AbstractSemantics::AbstractSemantics
  source_file: /src/raksha/src/analysis/taint/abstract_semantics.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::analysis::taint::IfcTags::Create
  - raksha::analysis::taint::IfcTags::IfcTags
  - '& secrecy_tags() const'
  - '& integrity_tags() const'
  - raksha::analysis::taint::IfcTags::IfcTags
  - raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
  - raksha::analysis::taint::IfcTags::Create
  - raksha::analysis::taint::IfcTags::IfcTags
  - '& secrecy_tags() const'
  - '& integrity_tags() const'
  - raksha::analysis::taint::IfcTags::IfcTags
  - raksha::analysis::taint::AbstractIfcTags::AbstractIfcTags
  source_file: /src/raksha/src/analysis/taint/abstract_ifc_tags.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::analysis::taint::AbstractSemanticsTest::AbstractSemanticsTest
  - raksha::analysis::taint::AbstractSemanticsTest::InvokeOperationTransformer
  - raksha::analysis::taint::AbstractSemanticsTest::BuildOperation
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::InferenceRuleInterpretationTest::InvokeOperationTransformer
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::GetInputExample
  - raksha::analysis::taint::AbstractSemanticsTest::AbstractSemanticsTest
  - raksha::analysis::taint::AbstractSemanticsTest::InvokeOperationTransformer
  - raksha::analysis::taint::AbstractSemanticsTest::BuildOperation
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::InferenceRuleInterpretationTest::InvokeOperationTransformer
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::GetInputExample
  - raksha::analysis::taint::AbstractSemanticsTest::AbstractSemanticsTest
  - raksha::analysis::taint::AbstractSemanticsTest::InvokeOperationTransformer
  - raksha::analysis::taint::AbstractSemanticsTest::BuildOperation
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::InferenceRuleInterpretationTest::InvokeOperationTransformer
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::GetInputExample
  - raksha::analysis::taint::AbstractSemanticsTest::AbstractSemanticsTest
  - raksha::analysis::taint::AbstractSemanticsTest::InvokeOperationTransformer
  - raksha::analysis::taint::AbstractSemanticsTest::BuildOperation
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::InferenceRuleInterpretationTest::InvokeOperationTransformer
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::GetInputExample
  source_file: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: inputs
        type: std::vector<AbstractIfcTags>
      - name: default_result
        type: AbstractIfcTags
      - name: premises
        type: std::vector<std::pair<bool, std::vector<InputHasIntegrity>>>
      item_type: struct
      name: InputExample
      pos:
        line_end: 114
        line_start: 106
        source_file: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    - fields:
      - name: test_name
        type: std::string
      - name: input_example_key
        type: absl::string_view
      - name: conclusions
        type: std::vector<Conclusion>
      - name: result
        type: AbstractIfcTags
      item_type: struct
      name: AbstractSemanticsTestCase
      pos:
        line_end: 130
        line_start: 121
        source_file: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    - fields:
      - name: inputs
        type: std::vector<AbstractIfcTags>
      - name: default_result
        type: AbstractIfcTags
      - name: premises
        type: std::vector<std::pair<bool, std::vector<InputHasIntegrity>>>
      item_type: struct
      name: InputExample
      pos:
        line_end: 114
        line_start: 106
        source_file: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    - fields:
      - name: test_name
        type: std::string
      - name: input_example_key
        type: absl::string_view
      - name: conclusions
        type: std::vector<Conclusion>
      - name: result
        type: AbstractIfcTags
      item_type: struct
      name: AbstractSemanticsTestCase
      pos:
        line_end: 130
        line_start: 121
        source_file: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    - fields:
      - name: inputs
        type: std::vector<AbstractIfcTags>
      - name: default_result
        type: AbstractIfcTags
      - name: premises
        type: std::vector<std::pair<bool, std::vector<InputHasIntegrity>>>
      item_type: struct
      name: InputExample
      pos:
        line_end: 114
        line_start: 106
        source_file: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    - fields:
      - name: test_name
        type: std::string
      - name: input_example_key
        type: absl::string_view
      - name: conclusions
        type: std::vector<Conclusion>
      - name: result
        type: AbstractIfcTags
      item_type: struct
      name: AbstractSemanticsTestCase
      pos:
        line_end: 130
        line_start: 121
        source_file: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    - fields:
      - name: inputs
        type: std::vector<AbstractIfcTags>
      - name: default_result
        type: AbstractIfcTags
      - name: premises
        type: std::vector<std::pair<bool, std::vector<InputHasIntegrity>>>
      item_type: struct
      name: InputExample
      pos:
        line_end: 114
        line_start: 106
        source_file: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    - fields:
      - name: test_name
        type: std::string
      - name: input_example_key
        type: absl::string_view
      - name: conclusions
        type: std::vector<Conclusion>
      - name: result
        type: AbstractIfcTags
      item_type: struct
      name: AbstractSemanticsTestCase
      pos:
        line_end: 130
        line_start: 121
        source_file: /src/raksha/src/analysis/taint/abstract_semantics_test.cc
    typedefs: []
    union: []
- function_names:
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST_P
  - raksha::analysis::taint::TEST_P
  source_file: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: tags
        type: TagIdSet
      - name: tag
        type: TagId
      - name: added_result
        type: TagIdSet
      - name: cleared_result
        type: TagIdSet
      item_type: struct
      name: TagIdManipulationTestCase
      pos:
        line_end: 54
        line_start: 49
        source_file: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    - fields:
      - name: arg0
        type: TagIdSet
      - name: arg1
        type: TagIdSet
      - name: union_result
        type: TagIdSet
      - name: intersect_result
        type: TagIdSet
      item_type: struct
      name: AbstractIfcTagsJoinTestCase
      pos:
        line_end: 223
        line_start: 218
        source_file: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    - fields:
      - name: tags
        type: TagIdSet
      - name: tag
        type: TagId
      - name: added_result
        type: TagIdSet
      - name: cleared_result
        type: TagIdSet
      item_type: struct
      name: TagIdManipulationTestCase
      pos:
        line_end: 54
        line_start: 49
        source_file: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    - fields:
      - name: arg0
        type: TagIdSet
      - name: arg1
        type: TagIdSet
      - name: union_result
        type: TagIdSet
      - name: intersect_result
        type: TagIdSet
      item_type: struct
      name: AbstractIfcTagsJoinTestCase
      pos:
        line_end: 223
        line_start: 218
        source_file: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    - fields:
      - name: tags
        type: TagIdSet
      - name: tag
        type: TagId
      - name: added_result
        type: TagIdSet
      - name: cleared_result
        type: TagIdSet
      item_type: struct
      name: TagIdManipulationTestCase
      pos:
        line_end: 54
        line_start: 49
        source_file: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    - fields:
      - name: arg0
        type: TagIdSet
      - name: arg1
        type: TagIdSet
      - name: union_result
        type: TagIdSet
      - name: intersect_result
        type: TagIdSet
      item_type: struct
      name: AbstractIfcTagsJoinTestCase
      pos:
        line_end: 223
        line_start: 218
        source_file: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    - fields:
      - name: tags
        type: TagIdSet
      - name: tag
        type: TagId
      - name: added_result
        type: TagIdSet
      - name: cleared_result
        type: TagIdSet
      item_type: struct
      name: TagIdManipulationTestCase
      pos:
        line_end: 54
        line_start: 49
        source_file: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    - fields:
      - name: arg0
        type: TagIdSet
      - name: arg1
        type: TagIdSet
      - name: union_result
        type: TagIdSet
      - name: intersect_result
        type: TagIdSet
      item_type: struct
      name: AbstractIfcTagsJoinTestCase
      pos:
        line_end: 223
        line_start: 218
        source_file: /src/raksha/src/analysis/taint/abstract_ifc_tags_test.cc
    typedefs: []
    union: []
- function_names:
  - TEST
  source_file: /src/raksha/src/analysis/souffle/cpp_interface_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - log_wrapper
  - log_wrapper_cxx
  source_file: /src/raksha/src/analysis/souffle/functors.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::analsis::souffle::TEST_P
  - raksha::analsis::souffle::TEST_P
  - raksha::analsis::souffle::TEST_P
  - raksha::analsis::souffle::TEST_P
  source_file: /src/raksha/src/analysis/souffle/functors_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/analysis/souffle/functors.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - run_test
  - main
  source_file: /src/raksha/src/analysis/souffle/tests/arcs_fact_tests/fact_test_driver.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - "operator()(const std::pair<EdgeIndex, Node>& target,\n                    const
    Node& source)"
  - "operator()(\n        const std::pair<EdgeIndex, Node>& target)"
  - raksha::analysis::common::ModuleGraph::GetNodes
  - raksha::analysis::common::ModuleGraph::GetOutEdges
  - raksha::analysis::common::ModuleGraph::GetUses
  - raksha::analysis::common::ModuleGraph::GetResults
  - '& GetEdgeSource(const Edge& edge) const'
  - '& GetEdgeTarget(const Edge& edge) const'
  - '& GetAdjacentNodes(const Node& source) const'
  - "operator()(const std::pair<EdgeIndex, Node>& target,\n                    const
    Node& source)"
  - "operator()(\n        const std::pair<EdgeIndex, Node>& target)"
  - raksha::analysis::common::ModuleGraph::GetNodes
  - raksha::analysis::common::ModuleGraph::GetOutEdges
  - raksha::analysis::common::ModuleGraph::GetUses
  - raksha::analysis::common::ModuleGraph::GetResults
  - '& GetEdgeSource(const Edge& edge) const'
  - '& GetEdgeTarget(const Edge& edge) const'
  - '& GetAdjacentNodes(const Node& source) const'
  source_file: /src/raksha/src/analysis/common/module_graph.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: source
        type: Node
      - name: index
        type: EdgeIndex
      - name: target
        type: Node
      item_type: struct
      name: Edge
      pos:
        line_end: 43
        line_start: 39
        source_file: /src/raksha/src/analysis/common/module_graph.h
    - fields: []
      item_type: struct
      name: EdgeMaterializer
      pos:
        line_end: 52
        line_start: 47
        source_file: /src/raksha/src/analysis/common/module_graph.h
    - fields: []
      item_type: struct
      name: TargetMaterializer
      pos:
        line_end: 62
        line_start: 55
        source_file: /src/raksha/src/analysis/common/module_graph.h
    - fields:
      - name: source
        type: Node
      - name: index
        type: EdgeIndex
      - name: target
        type: Node
      item_type: struct
      name: Edge
      pos:
        line_end: 43
        line_start: 39
        source_file: /src/raksha/src/analysis/common/module_graph.h
    - fields: []
      item_type: struct
      name: EdgeMaterializer
      pos:
        line_end: 52
        line_start: 47
        source_file: /src/raksha/src/analysis/common/module_graph.h
    - fields: []
      item_type: struct
      name: TargetMaterializer
      pos:
        line_end: 62
        line_start: 55
        source_file: /src/raksha/src/analysis/common/module_graph.h
    typedefs: []
    union: []
- function_names:
  - raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
  - raksha::analysis::common::AbstractReachingOperations::Bottom
  - raksha::analysis::common::AbstractReachingOperations::IsBottom
  - raksha::analysis::common::AbstractReachingOperations::IsEquivalentTo
  - '& operations() const'
  - raksha::analysis::common::AbstractReachingOperations::AddOperation
  - raksha::analysis::common::AbstractReachingOperations::Join
  - raksha::analysis::common::ReachingOperationsSemantics::ReachingOperationsSemantics
  - raksha::analysis::common::ReachingOperationsSemantics::ApplyOperationTransformer
  - raksha::analysis::common::ReachingOperationsSemantics::GetInitialState
  - raksha::analysis::common::TEST_P
  - raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
  - raksha::analysis::common::AbstractReachingOperations::Bottom
  - raksha::analysis::common::AbstractReachingOperations::IsBottom
  - raksha::analysis::common::AbstractReachingOperations::IsEquivalentTo
  - '& operations() const'
  - raksha::analysis::common::AbstractReachingOperations::AddOperation
  - raksha::analysis::common::AbstractReachingOperations::Join
  - raksha::analysis::common::ReachingOperationsSemantics::ReachingOperationsSemantics
  - raksha::analysis::common::ReachingOperationsSemantics::ApplyOperationTransformer
  - raksha::analysis::common::ReachingOperationsSemantics::GetInitialState
  - raksha::analysis::common::TEST_P
  - raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
  - raksha::analysis::common::AbstractReachingOperations::Bottom
  - raksha::analysis::common::AbstractReachingOperations::IsBottom
  - raksha::analysis::common::AbstractReachingOperations::IsEquivalentTo
  - '& operations() const'
  - raksha::analysis::common::AbstractReachingOperations::AddOperation
  - raksha::analysis::common::AbstractReachingOperations::Join
  - raksha::analysis::common::ReachingOperationsSemantics::ReachingOperationsSemantics
  - raksha::analysis::common::ReachingOperationsSemantics::ApplyOperationTransformer
  - raksha::analysis::common::ReachingOperationsSemantics::GetInitialState
  - raksha::analysis::common::TEST_P
  - raksha::analysis::common::AbstractReachingOperations::AbstractReachingOperations
  - raksha::analysis::common::AbstractReachingOperations::Bottom
  - raksha::analysis::common::AbstractReachingOperations::IsBottom
  - raksha::analysis::common::AbstractReachingOperations::IsEquivalentTo
  - '& operations() const'
  - raksha::analysis::common::AbstractReachingOperations::AddOperation
  - raksha::analysis::common::AbstractReachingOperations::Join
  - raksha::analysis::common::ReachingOperationsSemantics::ReachingOperationsSemantics
  - raksha::analysis::common::ReachingOperationsSemantics::ApplyOperationTransformer
  - raksha::analysis::common::ReachingOperationsSemantics::GetInitialState
  - raksha::analysis::common::TEST_P
  source_file: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: test_name
        type: std::string
      - name: module_text
        type: std::string
      - name: expected_operations
        type: absl::flat_hash_map<std::string, absl::btree_set<std::string>>
      item_type: struct
      name: ModuleTestCase
      pos:
        line_end: 114
        line_start: 109
        source_file: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    - fields:
      - name: test_name
        type: std::string
      - name: module_text
        type: std::string
      - name: expected_operations
        type: absl::flat_hash_map<std::string, absl::btree_set<std::string>>
      item_type: struct
      name: ModuleTestCase
      pos:
        line_end: 114
        line_start: 109
        source_file: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    - fields:
      - name: test_name
        type: std::string
      - name: module_text
        type: std::string
      - name: expected_operations
        type: absl::flat_hash_map<std::string, absl::btree_set<std::string>>
      item_type: struct
      name: ModuleTestCase
      pos:
        line_end: 114
        line_start: 109
        source_file: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    - fields:
      - name: test_name
        type: std::string
      - name: module_text
        type: std::string
      - name: expected_operations
        type: absl::flat_hash_map<std::string, absl::btree_set<std::string>>
      item_type: struct
      name: ModuleTestCase
      pos:
        line_end: 114
        line_start: 109
        source_file: /src/raksha/src/analysis/common/module_fixpoint_iterator_test.cc
    typedefs: []
    union: []
- function_names:
  - raksha::analysis::common::WorklistFixpointIterator::ComputeFixpoint
  - raksha::analysis::common::WorklistFixpointIterator::ComputeFixpoint
  source_file: /src/raksha/src/analysis/common/worklist_fixpoint_iterator.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - '& graph() const'
  - '& GetNode(NodeId id) const'
  - raksha::analysis::common::ModuleGraphTest::GetNodeId
  - raksha::analysis::common::TEST_P
  - raksha::analysis::common::TEST_P
  - raksha::analysis::common::GetPrettyPrintedNode
  - raksha::analysis::common::BuildIRAndParse
  - raksha::analysis::common::BuildNodeToIdMap
  - raksha::analysis::common::BuildIdToNodeMap
  - raksha::analysis::common::ModuleGraphTest::ModuleGraphTest
  - '& graph() const'
  - '& GetNode(NodeId id) const'
  - raksha::analysis::common::ModuleGraphTest::GetNodeId
  - raksha::analysis::common::TEST_P
  - raksha::analysis::common::TEST_P
  - raksha::analysis::common::GetPrettyPrintedNode
  - raksha::analysis::common::BuildIRAndParse
  - raksha::analysis::common::BuildNodeToIdMap
  - raksha::analysis::common::BuildIdToNodeMap
  - raksha::analysis::common::ModuleGraphTest::ModuleGraphTest
  - '& graph() const'
  - '& GetNode(NodeId id) const'
  - raksha::analysis::common::ModuleGraphTest::GetNodeId
  - raksha::analysis::common::TEST_P
  - raksha::analysis::common::TEST_P
  - raksha::analysis::common::GetPrettyPrintedNode
  - raksha::analysis::common::BuildIRAndParse
  - raksha::analysis::common::BuildNodeToIdMap
  - raksha::analysis::common::BuildIdToNodeMap
  - raksha::analysis::common::ModuleGraphTest::ModuleGraphTest
  - '& graph() const'
  - '& GetNode(NodeId id) const'
  - raksha::analysis::common::ModuleGraphTest::GetNodeId
  - raksha::analysis::common::TEST_P
  - raksha::analysis::common::TEST_P
  - raksha::analysis::common::GetPrettyPrintedNode
  - raksha::analysis::common::BuildIRAndParse
  - raksha::analysis::common::BuildNodeToIdMap
  - raksha::analysis::common::BuildIdToNodeMap
  - raksha::analysis::common::ModuleGraphTest::ModuleGraphTest
  source_file: /src/raksha/src/analysis/common/module_graph_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: test_name
        type: std::string
      - name: node_string_ids
        type: absl::flat_hash_map<std::string, NodeId>
      - name: expected_nodes
        type: absl::flat_hash_set<NodeId>
      - name: expected_edges
        type: absl::flat_hash_map<NodeId, std::vector<Edge>>
      item_type: struct
      name: ModuleGraphTestCase
      pos:
        line_end: 34
        line_start: 28
        source_file: /src/raksha/src/analysis/common/module_graph_test.cc
    - fields:
      - name: test_name
        type: std::string
      - name: node_string_ids
        type: absl::flat_hash_map<std::string, NodeId>
      - name: expected_nodes
        type: absl::flat_hash_set<NodeId>
      - name: expected_edges
        type: absl::flat_hash_map<NodeId, std::vector<Edge>>
      item_type: struct
      name: ModuleGraphTestCase
      pos:
        line_end: 34
        line_start: 28
        source_file: /src/raksha/src/analysis/common/module_graph_test.cc
    - fields:
      - name: test_name
        type: std::string
      - name: node_string_ids
        type: absl::flat_hash_map<std::string, NodeId>
      - name: expected_nodes
        type: absl::flat_hash_set<NodeId>
      - name: expected_edges
        type: absl::flat_hash_map<NodeId, std::vector<Edge>>
      item_type: struct
      name: ModuleGraphTestCase
      pos:
        line_end: 34
        line_start: 28
        source_file: /src/raksha/src/analysis/common/module_graph_test.cc
    - fields:
      - name: test_name
        type: std::string
      - name: node_string_ids
        type: absl::flat_hash_map<std::string, NodeId>
      - name: expected_nodes
        type: absl::flat_hash_set<NodeId>
      - name: expected_edges
        type: absl::flat_hash_map<NodeId, std::vector<Edge>>
      item_type: struct
      name: ModuleGraphTestCase
      pos:
        line_end: 34
        line_start: 28
        source_file: /src/raksha/src/analysis/common/module_graph_test.cc
    typedefs: []
    union: []
- function_names:
  - raksha::analysis::common::IntGraph::IntGraph
  - '& GetEdgeSource(const Edge& edge) const'
  - '& GetEdgeTarget(const Edge& edge) const'
  - raksha::analysis::common::IntGraph::GetOutEdges
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::ReachingNodesAndEdgesSemantics
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::GetEntryNodes
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::ApplyNodeTransformer
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::ApplyEdgeTransformer
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::AreStatesEqual
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::CombineStates
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::GetInitialState
  - raksha::analysis::common::TEST
  - raksha::analysis::common::IntGraph::IntGraph
  - '& GetEdgeSource(const Edge& edge) const'
  - '& GetEdgeTarget(const Edge& edge) const'
  - raksha::analysis::common::IntGraph::GetOutEdges
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::ReachingNodesAndEdgesSemantics
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::GetEntryNodes
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::ApplyNodeTransformer
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::ApplyEdgeTransformer
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::AreStatesEqual
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::CombineStates
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::GetInitialState
  - raksha::analysis::common::TEST
  - raksha::analysis::common::IntGraph::IntGraph
  - '& GetEdgeSource(const Edge& edge) const'
  - '& GetEdgeTarget(const Edge& edge) const'
  - raksha::analysis::common::IntGraph::GetOutEdges
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::ReachingNodesAndEdgesSemantics
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::GetEntryNodes
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::ApplyNodeTransformer
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::ApplyEdgeTransformer
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::AreStatesEqual
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::CombineStates
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::GetInitialState
  - raksha::analysis::common::TEST
  - raksha::analysis::common::IntGraph::IntGraph
  - '& GetEdgeSource(const Edge& edge) const'
  - '& GetEdgeTarget(const Edge& edge) const'
  - raksha::analysis::common::IntGraph::GetOutEdges
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::ReachingNodesAndEdgesSemantics
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::GetEntryNodes
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::ApplyNodeTransformer
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::ApplyEdgeTransformer
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::AreStatesEqual
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::CombineStates
  - raksha::analysis::common::ReachingNodesAndEdgesSemantics::GetInitialState
  - raksha::analysis::common::TEST
  source_file: /src/raksha/src/analysis/common/worklist_fixpoint_iterator_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::analysis::common::ModuleFixpointIterator::ComputeFixpoint
  - raksha::analysis::common::ModuleFixpointIterator::ComputeFixpoint
  source_file: /src/raksha/src/analysis/common/module_fixpoint_iterator.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::analysis::common::AdjacencyListComputingVisitor::ComputeAdjacencyList
  - raksha::analysis::common::AdjacencyListComputingVisitor::PreVisit
  - raksha::analysis::common::AdjacencyListComputingVisitor::ComputeAdjacencyList
  - raksha::analysis::common::AdjacencyListComputingVisitor::PreVisit
  - raksha::analysis::common::ModuleGraph::ModuleGraph
  - raksha::analysis::common::AdjacencyListComputingVisitor::ComputeAdjacencyList
  - raksha::analysis::common::AdjacencyListComputingVisitor::PreVisit
  - raksha::analysis::common::AdjacencyListComputingVisitor::ComputeAdjacencyList
  - raksha::analysis::common::AdjacencyListComputingVisitor::PreVisit
  - raksha::analysis::common::ModuleGraph::ModuleGraph
  source_file: /src/raksha/src/analysis/common/module_graph.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::policy::ErrorStrategy::reportError
  - raksha::policy::ParseProgramIsValid
  - raksha::policy::ErrorStrategy::reportError
  - raksha::policy::ParseProgramIsValid
  source_file: /src/raksha/src/policy/parser.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/policy/parser.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::policy::TEST_P
  - raksha::policy::TEST_P
  source_file: /src/raksha/src/policy/parser_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/common/logging/logging.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/common/testing/gtest.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::utils::TEST
  - raksha::utils::TEST
  - raksha::utils::TEST
  - raksha::utils::TEST
  - raksha::utils::TEST
  - raksha::utils::TEST
  source_file: /src/raksha/src/common/utils/iterator_range_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::utils::iterator_range::iterator_range
  - raksha::utils::iterator_range::begin
  - raksha::utils::iterator_range::end
  - raksha::utils::iterator_range::empty
  - raksha::utils::make_range
  - raksha::utils::iterator_range::iterator_range
  - raksha::utils::iterator_range::begin
  - raksha::utils::iterator_range::end
  - raksha::utils::iterator_range::empty
  - raksha::utils::make_range
  source_file: /src/raksha/src/common/utils/iterator_range.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::TEST_F
  - raksha::TEST_F
  - raksha::TEST_F
  - raksha::TEST_F
  - raksha::TEST_F
  - raksha::TEST_F
  - raksha::TEST_F
  - raksha::TEST_F
  - raksha::TEST_F
  - raksha::TEST_F
  - raksha::TEST_F
  - raksha::TEST_F
  - raksha::TEST_F
  - raksha::TEST_F
  - raksha::TEST_F
  - raksha::TEST_F
  source_file: /src/raksha/src/common/utils/ref_counter_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - operator()(int x, absl::string_view prefix) const
  - operator()(int x) const
  - operator()(int x, int value) const
  - raksha::utils::TEST
  - raksha::utils::TEST
  - raksha::utils::TEST
  - raksha::utils::TEST_P
  - operator()(int x, absl::string_view prefix) const
  - operator()(int x) const
  - operator()(int x, int value) const
  - raksha::utils::TEST
  - raksha::utils::TEST
  - raksha::utils::TEST
  - raksha::utils::TEST_P
  - operator()(int x, absl::string_view prefix) const
  - operator()(int x) const
  - operator()(int x, int value) const
  - raksha::utils::TEST
  - raksha::utils::TEST
  - raksha::utils::TEST
  - raksha::utils::TEST_P
  - operator()(int x, absl::string_view prefix) const
  - operator()(int x) const
  - operator()(int x, int value) const
  - raksha::utils::TEST
  - raksha::utils::TEST
  - raksha::utils::TEST
  - raksha::utils::TEST_P
  source_file: /src/raksha/src/common/utils/iterator_adapter_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: Stringifier
      pos:
        line_end: 21
        line_start: 16
        source_file: /src/raksha/src/common/utils/iterator_adapter_test.cc
    - fields: []
      item_type: struct
      name: AddSomething
      pos:
        line_end: 25
        line_start: 23
        source_file: /src/raksha/src/common/utils/iterator_adapter_test.cc
    - fields: []
      item_type: struct
      name: Stringifier
      pos:
        line_end: 21
        line_start: 16
        source_file: /src/raksha/src/common/utils/iterator_adapter_test.cc
    - fields: []
      item_type: struct
      name: AddSomething
      pos:
        line_end: 25
        line_start: 23
        source_file: /src/raksha/src/common/utils/iterator_adapter_test.cc
    - fields: []
      item_type: struct
      name: Stringifier
      pos:
        line_end: 21
        line_start: 16
        source_file: /src/raksha/src/common/utils/iterator_adapter_test.cc
    - fields: []
      item_type: struct
      name: AddSomething
      pos:
        line_end: 25
        line_start: 23
        source_file: /src/raksha/src/common/utils/iterator_adapter_test.cc
    - fields: []
      item_type: struct
      name: Stringifier
      pos:
        line_end: 21
        line_start: 16
        source_file: /src/raksha/src/common/utils/iterator_adapter_test.cc
    - fields: []
      item_type: struct
      name: AddSomething
      pos:
        line_end: 25
        line_start: 23
        source_file: /src/raksha/src/common/utils/iterator_adapter_test.cc
    typedefs: []
    union: []
- function_names:
  - raksha::intrusive_ptr::create
  - raksha::intrusive_ptr::intrusive_ptr
  - raksha::intrusive_ptr::intrusive_ptr
  - raksha::intrusive_ptr::intrusive_ptr
  - raksha::intrusive_ptr::intrusive_ptr
  - raksha::intrusive_ptr::intrusive_ptr
  - ~intrusive_ptr()
  - '& operator=(intrusive_ptr<T> other)'
  - '& operator*() const'
  - '* operator->() const'
  - raksha::intrusive_ptr::get
  - operator bool() const
  - raksha::intrusive_ptr::Swap
  - raksha::intrusive_ptr::Retain
  - raksha::intrusive_ptr::Release
  - raksha::make_intrusive_ptr
  - operator==(const intrusive_ptr<T>& lhs, const intrusive_ptr<U>& rhs)
  - operator!=(const intrusive_ptr<T>& lhs, const intrusive_ptr<U>& rhs)
  - operator==(const intrusive_ptr<T>& lhs, U* rhs)
  - operator!=(const intrusive_ptr<T>& lhs, U* rhs)
  - operator==(T* lhs, const intrusive_ptr<U>& rhs)
  - operator!=(T* lhs, const intrusive_ptr<U>& rhs)
  - operator==(std::nullptr_t, const intrusive_ptr<T>& rhs)
  - operator==(const intrusive_ptr<T>& lhs, std::nullptr_t rhs)
  - operator!=(std::nullptr_t lhs, const intrusive_ptr<T>& rhs)
  - operator!=(const intrusive_ptr<T>& lhs, std::nullptr_t rhs)
  - raksha::intrusive_ptr::create
  - raksha::intrusive_ptr::intrusive_ptr
  - raksha::intrusive_ptr::intrusive_ptr
  - raksha::intrusive_ptr::intrusive_ptr
  - raksha::intrusive_ptr::intrusive_ptr
  - raksha::intrusive_ptr::intrusive_ptr
  - ~intrusive_ptr()
  - '& operator=(intrusive_ptr<T> other)'
  - '& operator*() const'
  - '* operator->() const'
  - raksha::intrusive_ptr::get
  - operator bool() const
  - raksha::intrusive_ptr::Swap
  - raksha::intrusive_ptr::Retain
  - raksha::intrusive_ptr::Release
  - raksha::make_intrusive_ptr
  - operator==(const intrusive_ptr<T>& lhs, const intrusive_ptr<U>& rhs)
  - operator!=(const intrusive_ptr<T>& lhs, const intrusive_ptr<U>& rhs)
  - operator==(const intrusive_ptr<T>& lhs, U* rhs)
  - operator!=(const intrusive_ptr<T>& lhs, U* rhs)
  - operator==(T* lhs, const intrusive_ptr<U>& rhs)
  - operator!=(T* lhs, const intrusive_ptr<U>& rhs)
  - operator==(std::nullptr_t, const intrusive_ptr<T>& rhs)
  - operator==(const intrusive_ptr<T>& lhs, std::nullptr_t rhs)
  - operator!=(std::nullptr_t lhs, const intrusive_ptr<T>& rhs)
  - operator!=(const intrusive_ptr<T>& lhs, std::nullptr_t rhs)
  source_file: /src/raksha/src/common/utils/intrusive_ptr.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::common::utils::CreateTemporaryDirectory
  - raksha::common::utils::CreateTemporaryDirectory
  source_file: /src/raksha/src/common/utils/filesystem.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::utils::MapIter
  - raksha::utils::MapIter
  source_file: /src/raksha/src/common/utils/map_iter.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - "& operator()(\n      const typename C::value_type& value) const"
  - "& operator()(\n      const typename C::value_type& value) const"
  - "& operator()(\n      const typename C::value_type& value) const"
  - "& operator()(\n      const typename C::value_type& value) const"
  - raksha::utils::ranges::all
  - raksha::utils::ranges::keys
  - raksha::utils::ranges::values
  - "& operator()(\n      const typename C::value_type& value) const"
  - "& operator()(\n      const typename C::value_type& value) const"
  - "& operator()(\n      const typename C::value_type& value) const"
  - "& operator()(\n      const typename C::value_type& value) const"
  - raksha::utils::ranges::all
  - raksha::utils::ranges::keys
  - raksha::utils::ranges::values
  source_file: /src/raksha/src/common/utils/ranges.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: MapKeySelector
      pos:
        line_end: 18
        line_start: 13
        source_file: /src/raksha/src/common/utils/ranges.h
    - fields: []
      item_type: struct
      name: MapValueSelector
      pos:
        line_end: 27
        line_start: 22
        source_file: /src/raksha/src/common/utils/ranges.h
    - fields: []
      item_type: struct
      name: MapKeySelector
      pos:
        line_end: 18
        line_start: 13
        source_file: /src/raksha/src/common/utils/ranges.h
    - fields: []
      item_type: struct
      name: MapValueSelector
      pos:
        line_end: 27
        line_start: 22
        source_file: /src/raksha/src/common/utils/ranges.h
    - fields: []
      item_type: struct
      name: MapKeySelector
      pos:
        line_end: 18
        line_start: 13
        source_file: /src/raksha/src/common/utils/ranges.h
    - fields: []
      item_type: struct
      name: MapValueSelector
      pos:
        line_end: 27
        line_start: 22
        source_file: /src/raksha/src/common/utils/ranges.h
    - fields: []
      item_type: struct
      name: MapKeySelector
      pos:
        line_end: 18
        line_start: 13
        source_file: /src/raksha/src/common/utils/ranges.h
    - fields: []
      item_type: struct
      name: MapValueSelector
      pos:
        line_end: 27
        line_start: 22
        source_file: /src/raksha/src/common/utils/ranges.h
    typedefs: []
    union: []
- function_names:
  - raksha::RefCounter::RefCounter
  - raksha::RefCounter::RefCounter
  - operator size_t() const
  - raksha::RefCounter::FetchAdd
  - raksha::RefCounter::FetchSub
  - raksha::RefCounter::RefCounter
  - raksha::RefCounter::RefCounter
  - operator size_t() const
  - raksha::RefCounter::FetchAdd
  - raksha::RefCounter::FetchSub
  source_file: /src/raksha/src/common/utils/ref_counter.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::common::utils::fold
  - raksha::common::utils::fold
  - raksha::common::utils::rfold
  - raksha::common::utils::fold
  - raksha::common::utils::fold
  - raksha::common::utils::rfold
  source_file: /src/raksha/src/common/utils/fold.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/common/utils/filesystem.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::common::utils::TEST_P
  - raksha::common::utils::TEST_P
  - raksha::common::utils::TEST_P
  - raksha::common::utils::TEST_P
  - raksha::common::utils::TEST_P
  - raksha::common::utils::TEST_P
  - raksha::common::utils::TEST_P
  - raksha::common::utils::TEST_P
  source_file: /src/raksha/src/common/utils/fold_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: int_vec
        type: std::vector<int>
      - name: sum
        type: int
      item_type: struct
      name: IntVecAndSum
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/raksha/src/common/utils/fold_test.cc
    - fields:
      - name: string_vec
        type: std::vector<std::string>
      - name: concat_result
        type: std::string
      - name: reverse_concat_result
        type: std::string
      item_type: struct
      name: StringVecsAndConcatResults
      pos:
        line_end: 50
        line_start: 46
        source_file: /src/raksha/src/common/utils/fold_test.cc
    - fields:
      - name: int_vec
        type: std::vector<int>
      - name: sum
        type: int
      item_type: struct
      name: IntVecAndSum
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/raksha/src/common/utils/fold_test.cc
    - fields:
      - name: string_vec
        type: std::vector<std::string>
      - name: concat_result
        type: std::string
      - name: reverse_concat_result
        type: std::string
      item_type: struct
      name: StringVecsAndConcatResults
      pos:
        line_end: 50
        line_start: 46
        source_file: /src/raksha/src/common/utils/fold_test.cc
    typedefs: []
    union: []
- function_names:
  - raksha::utils::TEST_P
  - raksha::utils::TEST_P
  source_file: /src/raksha/src/common/utils/overloaded_test.cc
  types:
    enum:
    - enumerators:
      - name: kInt
      - name: kLong
      - name: kString
      - name: kFloat
      item_type: enum
      name: Kind
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/raksha/src/common/utils/overloaded_test.cc
    - enumerators:
      - name: kInt
      - name: kLong
      - name: kString
      - name: kFloat
      item_type: enum
      name: Kind
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/raksha/src/common/utils/overloaded_test.cc
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/common/utils/overloaded.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: overloaded
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/raksha/src/common/utils/overloaded.h
    - fields: []
      item_type: struct
      name: overloaded
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/raksha/src/common/utils/overloaded.h
    typedefs: []
    union: []
- function_names:
  - raksha::RefCountedType::GetDestructorCalls
  - raksha::RefCountedType::ResetDestructorCalls
  - ~RefCountedType()
  - raksha::RefCountManager<RefCountedType>::Retain
  - raksha::RefCountManager<RefCountedType>::Release
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::RefCountedType::GetDestructorCalls
  - raksha::RefCountedType::ResetDestructorCalls
  - ~RefCountedType()
  - raksha::RefCountManager<RefCountedType>::Retain
  - raksha::RefCountManager<RefCountedType>::Release
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  source_file: /src/raksha/src/common/utils/ref_counted_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/common/utils/types.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::RefCountManager::Retain
  - raksha::RefCountManager::Release
  - raksha::RefCounted::RefCounted
  - raksha::RefCounted::RefCounted
  - raksha::RefCounted::RefCounted
  - '& operator=(const RefCounted&)'
  - '& operator=(RefCounted&&)'
  - raksha::RefCounted::Retain
  - raksha::RefCounted::Release
  - ~RefCounted()
  - raksha::RefCountManager::Retain
  - raksha::RefCountManager::Release
  - raksha::RefCounted::RefCounted
  - raksha::RefCounted::RefCounted
  - raksha::RefCounted::RefCounted
  - '& operator=(const RefCounted&)'
  - '& operator=(RefCounted&&)'
  - raksha::RefCounted::Retain
  - raksha::RefCounted::Release
  - ~RefCounted()
  source_file: /src/raksha/src/common/utils/ref_counted.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::RefCountedType::RefCountedType
  - raksha::RefCountedType::count
  - raksha::RefCountedType::some_flag
  - raksha::RefCountedType::set_id
  - '& id() const'
  - raksha::RefCountedType::Retain
  - raksha::RefCountedType::Release
  - raksha::MakeRefCountedTypeInstance
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::RefCountedType::RefCountedType
  - raksha::RefCountedType::count
  - raksha::RefCountedType::some_flag
  - raksha::RefCountedType::set_id
  - '& id() const'
  - raksha::RefCountedType::Retain
  - raksha::RefCountedType::Release
  - raksha::MakeRefCountedTypeInstance
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::RefCountedType::RefCountedType
  - raksha::RefCountedType::count
  - raksha::RefCountedType::some_flag
  - raksha::RefCountedType::set_id
  - '& id() const'
  - raksha::RefCountedType::Retain
  - raksha::RefCountedType::Release
  - raksha::MakeRefCountedTypeInstance
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::RefCountedType::RefCountedType
  - raksha::RefCountedType::count
  - raksha::RefCountedType::some_flag
  - raksha::RefCountedType::set_id
  - '& id() const'
  - raksha::RefCountedType::Retain
  - raksha::RefCountedType::Release
  - raksha::MakeRefCountedTypeInstance
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  source_file: /src/raksha/src/common/utils/intrusive_ptr_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::utils::TEST
  - raksha::utils::TEST
  - raksha::utils::TEST
  - raksha::utils::TEST
  source_file: /src/raksha/src/common/utils/map_iter_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - '& operator++()'
  - operator++(int)
  - operator*() const
  - raksha::utils::IteratorAdapter
  - "operator==(\n    const IteratorAdapter<Iterator, ValueAdapter, Context>& lhs,\n
    \   const IteratorAdapter<Iterator, ValueAdapter, Context>& rhs)"
  - "operator!=(\n    const IteratorAdapter<Iterator, ValueAdapter, Context>& lhs,\n
    \   const IteratorAdapter<Iterator, ValueAdapter, Context>& rhs)"
  - raksha::utils::make_adapted_range
  - raksha::utils::make_adapted_range
  - raksha::utils::make_adapted_range
  - raksha::utils::make_adapted_range
  - '& operator++()'
  - operator++(int)
  - operator*() const
  - raksha::utils::IteratorAdapter
  - "operator==(\n    const IteratorAdapter<Iterator, ValueAdapter, Context>& lhs,\n
    \   const IteratorAdapter<Iterator, ValueAdapter, Context>& rhs)"
  - "operator!=(\n    const IteratorAdapter<Iterator, ValueAdapter, Context>& lhs,\n
    \   const IteratorAdapter<Iterator, ValueAdapter, Context>& rhs)"
  - raksha::utils::make_adapted_range
  - raksha::utils::make_adapted_range
  - raksha::utils::make_adapted_range
  - raksha::utils::make_adapted_range
  source_file: /src/raksha/src/common/utils/iterator_adapter.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: underlying_iterator_
        type: Iterator
      - name: context_
        type: Context
      item_type: struct
      name: IteratorAdapter
      pos:
        line_end: 85
        line_start: 19
        source_file: /src/raksha/src/common/utils/iterator_adapter.h
    - fields: []
      item_type: struct
      name: ValueAdapterReturnType
      pos:
        line_end: 33
        line_start: 29
        source_file: /src/raksha/src/common/utils/iterator_adapter.h
    - fields: []
      item_type: struct
      name: ValueAdapterReturnType<IValueAdapter, Unit>
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/raksha/src/common/utils/iterator_adapter.h
    - fields:
      - name: underlying_iterator_
        type: Iterator
      - name: context_
        type: Context
      item_type: struct
      name: IteratorAdapter
      pos:
        line_end: 85
        line_start: 19
        source_file: /src/raksha/src/common/utils/iterator_adapter.h
    - fields: []
      item_type: struct
      name: ValueAdapterReturnType
      pos:
        line_end: 33
        line_start: 29
        source_file: /src/raksha/src/common/utils/iterator_adapter.h
    - fields: []
      item_type: struct
      name: ValueAdapterReturnType<IValueAdapter, Unit>
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/raksha/src/common/utils/iterator_adapter.h
    typedefs: []
    union: []
- function_names:
  - raksha::RefCountedType::GetDestructorCalls
  - raksha::RefCountedType::ResetDestructorCalls
  - ~RefCountedType()
  - raksha::TYPED_TEST
  - raksha::TYPED_TEST
  - raksha::RefCountedType::GetDestructorCalls
  - raksha::RefCountedType::ResetDestructorCalls
  - ~RefCountedType()
  - raksha::TYPED_TEST
  - raksha::TYPED_TEST
  source_file: /src/raksha/src/common/utils/intrusive_ptr_with_ref_counted_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::common::utils::TEST
  - raksha::common::utils::TEST
  source_file: /src/raksha/src/common/utils/filesystem_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  - raksha::TEST
  source_file: /src/raksha/src/common/utils/types_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::utils::ranges::TEST
  - raksha::utils::ranges::TEST
  - raksha::utils::ranges::TEST
  - raksha::utils::ranges::TEST
  - raksha::utils::ranges::TEST
  - raksha::utils::ranges::TEST
  - raksha::utils::ranges::TEST
  - raksha::utils::ranges::TEST
  - raksha::utils::ranges::TEST
  - raksha::utils::ranges::TEST
  - raksha::utils::ranges::TEST
  - raksha::utils::ranges::TEST
  source_file: /src/raksha/src/common/utils/ranges_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/common/utils/test/utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::utils::test::GetTestDataDir
  - raksha::utils::test::ReadFileLines
  - raksha::utils::test::GetTestDataDir
  - raksha::utils::test::ReadFileLines
  source_file: /src/raksha/src/common/utils/test/utils.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::utils::test::dl_string_extractor::DatalogString::DatalogString
  - raksha::utils::test::dl_string_extractor::DatalogString::kind
  - raksha::utils::test::dl_string_extractor::DatalogString::dl_string
  - raksha::utils::test::dl_string_extractor::DatalogString::DatalogString
  - raksha::utils::test::dl_string_extractor::DatalogString::kind
  - raksha::utils::test::dl_string_extractor::DatalogString::dl_string
  source_file: /src/raksha/src/common/utils/test/dl_string_extractor/datalog_string.h
  types:
    enum:
    - enumerators:
      - name: kDlRuleBody
      item_type: enum
      name: DatalogStringKind
      pos:
        line_end: 25
        line_start: 23
        source_file: /src/raksha/src/common/utils/test/dl_string_extractor/datalog_string.h
    - enumerators:
      - name: kDlRuleBody
      item_type: enum
      name: DatalogStringKind
      pos:
        line_end: 25
        line_start: 23
        source_file: /src/raksha/src/common/utils/test/dl_string_extractor/datalog_string.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/raksha/src/common/utils/test/dl_string_extractor/dl_string_test_file_generator.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/raksha/src/common/utils/test/dl_string_extractor/dl_string_parsing_test_driver.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::backends::policy_engine::DpParamaterPolicyRulePolicyTest::DpParamaterPolicyRulePolicyTest
  - raksha::backends::policy_engine::TEST_P
  - raksha::backends::policy_engine::ConvertParamToStringExpectLossless
  - raksha::backends::policy_engine::TEST_P
  - raksha::backends::policy_engine::DpParamaterPolicyRulePolicyTest::DpParamaterPolicyRulePolicyTest
  - raksha::backends::policy_engine::TEST_P
  - raksha::backends::policy_engine::ConvertParamToStringExpectLossless
  - raksha::backends::policy_engine::TEST_P
  - raksha::backends::policy_engine::DpParamaterPolicyRulePolicyTest::DpParamaterPolicyRulePolicyTest
  - raksha::backends::policy_engine::TEST_P
  - raksha::backends::policy_engine::ConvertParamToStringExpectLossless
  - raksha::backends::policy_engine::TEST_P
  - raksha::backends::policy_engine::DpParamaterPolicyRulePolicyTest::DpParamaterPolicyRulePolicyTest
  - raksha::backends::policy_engine::TEST_P
  - raksha::backends::policy_engine::ConvertParamToStringExpectLossless
  - raksha::backends::policy_engine::TEST_P
  source_file: /src/raksha/src/backends/policy_engine/dp_parameter_policy_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::backends::policy_engine::Policy::Policy
  - raksha::backends::policy_engine::Policy::Policy
  - '& operator=(const Policy&)'
  - raksha::backends::policy_engine::Policy::Policy
  - '& operator=(Policy&&)'
  - ~Policy()
  - raksha::backends::policy_engine::Policy::Policy
  - raksha::backends::policy_engine::Policy::Policy
  - '& operator=(const Policy&)'
  - raksha::backends::policy_engine::Policy::Policy
  - '& operator=(Policy&&)'
  - ~Policy()
  source_file: /src/raksha/src/backends/policy_engine/policy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::backends::policy_engine::SqlPolicyRulePolicy::SqlPolicyRulePolicy
  - raksha::backends::policy_engine::SqlPolicyRulePolicy::GetPolicyAnalysisChecker
  - raksha::backends::policy_engine::SqlPolicyRulePolicy::GetPolicyFactName
  - raksha::backends::policy_engine::SqlPolicyRulePolicy::GetPolicyString
  - raksha::backends::policy_engine::SqlPolicyRulePolicy::SqlPolicyRulePolicy
  - raksha::backends::policy_engine::SqlPolicyRulePolicy::GetPolicyAnalysisChecker
  - raksha::backends::policy_engine::SqlPolicyRulePolicy::GetPolicyFactName
  - raksha::backends::policy_engine::SqlPolicyRulePolicy::GetPolicyString
  source_file: /src/raksha/src/backends/policy_engine/sql_policy_rule_policy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::backends::policy_engine::DpParameterPolicy::DpParameterPolicy
  - raksha::backends::policy_engine::DpParameterPolicy::GetPolicyAnalysisChecker
  - raksha::backends::policy_engine::DpParameterPolicy::GetPolicyFactName
  - raksha::backends::policy_engine::DpParameterPolicy::GetPolicyString
  - raksha::backends::policy_engine::DpParameterPolicy::DpParameterPolicy
  - raksha::backends::policy_engine::DpParameterPolicy::GetPolicyAnalysisChecker
  - raksha::backends::policy_engine::DpParameterPolicy::GetPolicyFactName
  - raksha::backends::policy_engine::DpParameterPolicy::GetPolicyString
  source_file: /src/raksha/src/backends/policy_engine/dp_parameter_policy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~PolicyChecker()
  - ~PolicyChecker()
  source_file: /src/raksha/src/backends/policy_engine/policy_checker.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::backends::policy_engine::AuthLogicPolicy::AuthLogicPolicy
  - raksha::backends::policy_engine::AuthLogicPolicy::GetPolicyAnalysisChecker
  - raksha::backends::policy_engine::AuthLogicPolicy::GetPolicyFactName
  - raksha::backends::policy_engine::AuthLogicPolicy::GetPolicyString
  - raksha::backends::policy_engine::AuthLogicPolicy::AuthLogicPolicy
  - raksha::backends::policy_engine::AuthLogicPolicy::GetPolicyAnalysisChecker
  - raksha::backends::policy_engine::AuthLogicPolicy::GetPolicyFactName
  - raksha::backends::policy_engine::AuthLogicPolicy::GetPolicyString
  source_file: /src/raksha/src/backends/policy_engine/auth_logic_policy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::backends::policy_engine::CatchallPolicyRulePolicy::CatchallPolicyRulePolicy
  - raksha::backends::policy_engine::CatchallPolicyRulePolicy::GetPolicyAnalysisChecker
  - raksha::backends::policy_engine::CatchallPolicyRulePolicy::GetPolicyFactName
  - raksha::backends::policy_engine::CatchallPolicyRulePolicy::GetPolicyString
  - raksha::backends::policy_engine::CatchallPolicyRulePolicy::CatchallPolicyRulePolicy
  - raksha::backends::policy_engine::CatchallPolicyRulePolicy::GetPolicyAnalysisChecker
  - raksha::backends::policy_engine::CatchallPolicyRulePolicy::GetPolicyFactName
  - raksha::backends::policy_engine::CatchallPolicyRulePolicy::GetPolicyString
  source_file: /src/raksha/src/backends/policy_engine/catchall_policy_rule_policy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ReadFileContents
  - ReadFileContents
  - main
  source_file: /src/raksha/src/backends/policy_engine/souffle/raksha_policy_datalog_emitter.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::backends::policy_engine::souffle::RakshaDatalogFacts::AddIsOperationFact
  - raksha::backends::policy_engine::souffle::RakshaDatalogFacts::ToDatalogString
  - '&is_operation_facts() const'
  - raksha::backends::policy_engine::souffle::RakshaDatalogFacts::AddIsOperationFact
  - raksha::backends::policy_engine::souffle::RakshaDatalogFacts::ToDatalogString
  - '&is_operation_facts() const'
  source_file: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/backends/policy_engine/souffle/utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::backends::policy_engine::MakeOperationResultValue
  - raksha::backends::policy_engine::TEST
  - raksha::backends::policy_engine::TEST
  - raksha::backends::policy_engine::TEST
  - raksha::backends::policy_engine::TEST
  - raksha::backends::policy_engine::MakeOperationResultValue
  - raksha::backends::policy_engine::TEST
  - raksha::backends::policy_engine::TEST
  - raksha::backends::policy_engine::TEST
  - raksha::backends::policy_engine::TEST
  - raksha::backends::policy_engine::MakeOperationResultValue
  - raksha::backends::policy_engine::TEST
  - raksha::backends::policy_engine::TEST
  - raksha::backends::policy_engine::TEST
  - raksha::backends::policy_engine::TEST
  - raksha::backends::policy_engine::MakeOperationResultValue
  - raksha::backends::policy_engine::TEST
  - raksha::backends::policy_engine::TEST
  - raksha::backends::policy_engine::TEST
  - raksha::backends::policy_engine::TEST
  source_file: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::backends::policy_engine::souffle::TestObjectFactory::CreateOperation
  - raksha::backends::policy_engine::souffle::TestObjectFactory::CreateDatalogOperation
  - raksha::backends::policy_engine::souffle::TEST_P
  - raksha::backends::policy_engine::souffle::TEST_P
  - raksha::backends::policy_engine::souffle::ModuleWithAddedOperationsFn
  - raksha::backends::policy_engine::souffle::TestObjectFactory::CreateOperation
  - raksha::backends::policy_engine::souffle::TestObjectFactory::CreateDatalogOperation
  - raksha::backends::policy_engine::souffle::TEST_P
  - raksha::backends::policy_engine::souffle::TEST_P
  - raksha::backends::policy_engine::souffle::ModuleWithAddedOperationsFn
  source_file: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ir_operation'
        type: ir::Operation
      - name: '*datalog_is_operation'
        type: ir::datalog::IsOperationFact
      item_type: struct
      name: IrAndDatalogOperationPairs
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc
    - fields:
      - name: module_fn
        type: std::function<ir::Module()>
      - name: facts_fn
        type: std::function<RakshaDatalogFacts()>
      item_type: struct
      name: ModuleAndExpectedRakshaDatalogFactBuilders
      pos:
        line_end: 128
        line_start: 125
        source_file: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc
    - fields:
      - name: '*ir_operation'
        type: ir::Operation
      - name: '*datalog_is_operation'
        type: ir::datalog::IsOperationFact
      item_type: struct
      name: IrAndDatalogOperationPairs
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc
    - fields:
      - name: module_fn
        type: std::function<ir::Module()>
      - name: facts_fn
        type: std::function<RakshaDatalogFacts()>
      item_type: struct
      name: ModuleAndExpectedRakshaDatalogFactBuilders
      pos:
        line_end: 128
        line_start: 125
        source_file: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor_test.cc
    typedefs: []
    union: []
- function_names:
  - raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::DumpFactsToDirectoryTest
  - raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::TearDown
  - raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::GetFilesInDirectory
  - raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::CheckFileContentsInDirectory
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::DumpFactsToDirectoryTest
  - raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::TearDown
  - raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::GetFilesInDirectory
  - raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::CheckFileContentsInDirectory
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::DumpFactsToDirectoryTest
  - raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::TearDown
  - raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::GetFilesInDirectory
  - raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::CheckFileContentsInDirectory
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::DumpFactsToDirectoryTest
  - raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::TearDown
  - raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::GetFilesInDirectory
  - raksha::backends::policy_engine::souffle::DumpFactsToDirectoryTest::CheckFileContentsInDirectory
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST_F
  source_file: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::backends::policy_engine::souffle::GetPayloadForAttribute
  - raksha::backends::policy_engine::souffle::DatalogLoweringVisitor::PreVisit
  - raksha::backends::policy_engine::souffle::GetPayloadForAttribute
  - raksha::backends::policy_engine::souffle::DatalogLoweringVisitor::PreVisit
  source_file: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::backends::policy_engine::souffle::TEST
  - raksha::backends::policy_engine::souffle::CreateTempdirTest::CreateTempdirTest
  - raksha::backends::policy_engine::souffle::CreateTempdirTest::TearDown
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST
  - raksha::backends::policy_engine::souffle::CreateTempdirTest::CreateTempdirTest
  - raksha::backends::policy_engine::souffle::CreateTempdirTest::TearDown
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST
  - raksha::backends::policy_engine::souffle::CreateTempdirTest::CreateTempdirTest
  - raksha::backends::policy_engine::souffle::CreateTempdirTest::TearDown
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST
  - raksha::backends::policy_engine::souffle::CreateTempdirTest::CreateTempdirTest
  - raksha::backends::policy_engine::souffle::CreateTempdirTest::TearDown
  - raksha::backends::policy_engine::souffle::TEST_F
  - raksha::backends::policy_engine::souffle::TEST_F
  source_file: /src/raksha/src/backends/policy_engine/souffle/utils_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::backends::policy_engine::souffle::DatalogLoweringVisitor::DatalogLoweringVisitor
  - raksha::backends::policy_engine::souffle::DatalogLoweringVisitor::DatalogLoweringVisitor
  - '&datalog_facts()'
  - raksha::backends::policy_engine::souffle::DatalogLoweringVisitor::DatalogLoweringVisitor
  - raksha::backends::policy_engine::souffle::DatalogLoweringVisitor::DatalogLoweringVisitor
  - '&datalog_facts()'
  source_file: /src/raksha/src/backends/policy_engine/souffle/datalog_lowering_visitor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
  - raksha::backends::policy_engine::souffle::WriteFactsStringToFactsFile
  source_file: /src/raksha/src/backends/policy_engine/souffle/utils.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::backends::policy_engine::IsModulePolicyCompliantHelper
  - raksha::backends::policy_engine::SoufflePolicyChecker::IsModulePolicyCompliant
  - raksha::backends::policy_engine::IsModulePolicyCompliantHelper
  - raksha::backends::policy_engine::SoufflePolicyChecker::IsModulePolicyCompliant
  source_file: /src/raksha/src/backends/policy_engine/souffle/souffle_policy_checker.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ReadFileContents
  - UnwrapExitCode
  - GetIrGraphComponentsFromIrPath
  - GetIrGraphComponentsFromProtoPath
  - ReadFileContents
  - UnwrapExitCode
  - GetIrGraphComponentsFromIrPath
  - GetIrGraphComponentsFromProtoPath
  - main
  source_file: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc
  types:
    enum:
    - enumerators:
      - name: PASS
        value: '0'
      - name: ERROR
        value: '2'
      - name: FAIL
        value: '1'
      item_type: enum
      name: ReturnCode
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc
    - enumerators:
      - name: PASS
        value: '0'
      - name: ERROR
        value: '2'
      - name: FAIL
        value: '1'
      item_type: enum
      name: ReturnCode
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc
    preproc_defs: []
    structs:
    - fields:
      - name: ir_module
        type: std::unique_ptr<raksha::ir::Module>
      - name: ir_ssa_names
        type: std::unique_ptr<raksha::ir::SsaNames>
      - name: ir_context
        type: std::unique_ptr<raksha::ir::IRContext>
      item_type: struct
      name: IrGraphComponents
      pos:
        line_end: 80
        line_start: 76
        source_file: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc
    - fields:
      - name: ir_module
        type: std::unique_ptr<raksha::ir::Module>
      - name: ir_ssa_names
        type: std::unique_ptr<raksha::ir::SsaNames>
      - name: ir_context
        type: std::unique_ptr<raksha::ir::IRContext>
      item_type: struct
      name: IrGraphComponents
      pos:
        line_end: 80
        line_start: 76
        source_file: /src/raksha/src/backends/policy_engine/souffle/check_policy_compliance.cc
    typedefs: []
    union: []
- function_names:
  - raksha::backends::policy_engine::souffle::WriteFactsToFile
  - raksha::backends::policy_engine::souffle::WriteFactsToFile
  - raksha::backends::policy_engine::souffle::RakshaDatalogFacts::DumpFactsToDirectory
  - raksha::backends::policy_engine::souffle::WriteFactsToFile
  - raksha::backends::policy_engine::souffle::WriteFactsToFile
  - raksha::backends::policy_engine::souffle::RakshaDatalogFacts::DumpFactsToDirectory
  source_file: /src/raksha/src/backends/policy_engine/souffle/raksha_datalog_facts.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::backends::policy_engine::AbstractInterpretationPolicyChecker::AbstractInterpretationPolicyChecker
  - raksha::backends::policy_engine::AbstractInterpretationPolicyChecker::AbstractInterpretationPolicyChecker
  source_file: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::backends::policy_engine::AbstractInterpretationPolicyChecker::ComputeIfcTags
  - raksha::backends::policy_engine::AbstractInterpretationPolicyChecker::IsModulePolicyCompliant
  - raksha::backends::policy_engine::AbstractInterpretationPolicyChecker::ComputeIfcTags
  - raksha::backends::policy_engine::AbstractInterpretationPolicyChecker::IsModulePolicyCompliant
  source_file: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::AbstractInterpretationPolicyCheckerTest
  - '& module() const'
  - raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::ssa_names
  - '& inference_rules() const'
  - raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
  - raksha::backends::policy_engine::TEST_P
  - raksha::backends::policy_engine::TEST_P
  - raksha::backends::policy_engine::TEST
  - raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::AbstractInterpretationPolicyCheckerTest
  - '& module() const'
  - raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::ssa_names
  - '& inference_rules() const'
  - raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
  - raksha::backends::policy_engine::TEST_P
  - raksha::backends::policy_engine::TEST_P
  - raksha::backends::policy_engine::TEST
  - raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::AbstractInterpretationPolicyCheckerTest
  - '& module() const'
  - raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::ssa_names
  - '& inference_rules() const'
  - raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
  - raksha::backends::policy_engine::TEST_P
  - raksha::backends::policy_engine::TEST_P
  - raksha::backends::policy_engine::TEST
  - raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::AbstractInterpretationPolicyCheckerTest
  - '& module() const'
  - raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::ssa_names
  - '& inference_rules() const'
  - raksha::backends::policy_engine::AbstractInterpretationPolicyCheckerTest::BuildInferenceRules
  - raksha::backends::policy_engine::TEST_P
  - raksha::backends::policy_engine::TEST_P
  - raksha::backends::policy_engine::TEST
  source_file: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: test_name
        type: std::string
      - name: module_text
        type: std::string
      - name: policy_compliant
        type: bool
      - name: fixpoint_result
        type: absl::flat_hash_map<std::string, AbstractIfcTags>
      item_type: struct
      name: TestCase
      pos:
        line_end: 42
        line_start: 37
        source_file: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    - fields:
      - name: test_name
        type: std::string
      - name: module_text
        type: std::string
      - name: policy_compliant
        type: bool
      - name: fixpoint_result
        type: absl::flat_hash_map<std::string, AbstractIfcTags>
      item_type: struct
      name: TestCase
      pos:
        line_end: 42
        line_start: 37
        source_file: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    - fields:
      - name: test_name
        type: std::string
      - name: module_text
        type: std::string
      - name: policy_compliant
        type: bool
      - name: fixpoint_result
        type: absl::flat_hash_map<std::string, AbstractIfcTags>
      item_type: struct
      name: TestCase
      pos:
        line_end: 42
        line_start: 37
        source_file: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    - fields:
      - name: test_name
        type: std::string
      - name: module_text
        type: std::string
      - name: policy_compliant
        type: bool
      - name: fixpoint_result
        type: absl::flat_hash_map<std::string, AbstractIfcTags>
      item_type: struct
      name: TestCase
      pos:
        line_end: 42
        line_start: 37
        source_file: /src/raksha/src/backends/policy_engine/abstract_interpretation/abstract_interpretation_policy_checker_test.cc
    typedefs: []
    union: []
- function_names:
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  - raksha::ir::TEST_P
  source_file: /src/raksha/src/ir/selector_test.cc
  types:
    enum:
    - enumerators:
      - name: kFieldSelector
      item_type: enum
      name: SelectorKind
      pos:
        line_end: 26
        line_start: 24
        source_file: /src/raksha/src/ir/selector_test.cc
    - enumerators:
      - name: kFieldSelector
      item_type: enum
      name: SelectorKind
      pos:
        line_end: 26
        line_start: 24
        source_file: /src/raksha/src/ir/selector_test.cc
    preproc_defs: []
    structs:
    - fields:
      - name: selector
        type: Selector
      - name: selector_kind
        type: SelectorKind
      - name: original_str
        type: std::string
      - name: expected_to_string
        type: std::string
      item_type: struct
      name: ExampleSelectorAndInfo
      pos:
        line_end: 40
        line_start: 31
        source_file: /src/raksha/src/ir/selector_test.cc
    - fields:
      - name: selector
        type: Selector
      - name: selector_kind
        type: SelectorKind
      - name: original_str
        type: std::string
      - name: expected_to_string
        type: std::string
      item_type: struct
      name: ExampleSelectorAndInfo
      pos:
        line_end: 40
        line_start: 31
        source_file: /src/raksha/src/ir/selector_test.cc
    typedefs: []
    union: []
- function_names:
  - raksha::ir::IRToProto::Convert
  - raksha::ir::IRToProto::IRToProto
  - raksha::ir::IRToProto::IRToProto
  - '& operator=(const IRToProto&)'
  - raksha::ir::IRToProto::IRToProto
  - '& operator=(IRToProto&&)'
  - ~IRToProto()
  - raksha::ir::IRToProto::GetID
  - raksha::ir::IRToProto::Convert
  - raksha::ir::IRToProto::IRToProto
  - raksha::ir::IRToProto::IRToProto
  - '& operator=(const IRToProto&)'
  - raksha::ir::IRToProto::IRToProto
  - '& operator=(IRToProto&&)'
  - ~IRToProto()
  - raksha::ir::IRToProto::GetID
  source_file: /src/raksha/src/ir/ir_to_proto.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::IRContext::IRContext
  - raksha::ir::IRContext::IRContext
  - '&operator=(const IRContext &)'
  - raksha::ir::IRContext::IRContext
  - '&operator=(IRContext &&)'
  - ~IRContext()
  - raksha::ir::IRContext::IRContext
  - '&type_factory()'
  - "&Operators()\n      const"
  - '&RegisterOperator(std::unique_ptr<Operator> op)'
  - '&RegisterOperator(Operator op)'
  - raksha::ir::IRContext::GetOperator
  - raksha::ir::IRContext::IsRegisteredOperator
  - '&RegisterStorage(std::unique_ptr<Storage> op)'
  - raksha::ir::IRContext::GetStorage
  - raksha::ir::IRContext::IsRegisteredStorage
  - '&RegisterNode(std::unique_ptr<Node> node)'
  - raksha::ir::IRContext::NamedIRNodeRegistry::GetNode
  - raksha::ir::IRContext::NamedIRNodeRegistry::IsRegisteredNode
  - "&nodes()\n        const"
  - raksha::ir::IRContext::IRContext
  - raksha::ir::IRContext::IRContext
  - '&operator=(const IRContext &)'
  - raksha::ir::IRContext::IRContext
  - '&operator=(IRContext &&)'
  - ~IRContext()
  - raksha::ir::IRContext::IRContext
  - '&type_factory()'
  - "&Operators()\n      const"
  - '&RegisterOperator(std::unique_ptr<Operator> op)'
  - '&RegisterOperator(Operator op)'
  - raksha::ir::IRContext::GetOperator
  - raksha::ir::IRContext::IsRegisteredOperator
  - '&RegisterStorage(std::unique_ptr<Storage> op)'
  - raksha::ir::IRContext::GetStorage
  - raksha::ir::IRContext::IsRegisteredStorage
  - '&RegisterNode(std::unique_ptr<Node> node)'
  - raksha::ir::IRContext::NamedIRNodeRegistry::GetNode
  - raksha::ir::IRContext::NamedIRNodeRegistry::IsRegisteredNode
  - "&nodes()\n        const"
  source_file: /src/raksha/src/ir/ir_context.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::MakeOrderedStrSet
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::MakeOrderedStrSet
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  source_file: /src/raksha/src/ir/access_path_selectors_set_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::Operator::Operator
  - raksha::ir::Operator::Operator
  - raksha::ir::Operator::name
  - raksha::ir::Operator::number_of_return_values
  - raksha::ir::Operator::Operator
  - raksha::ir::Operator::Operator
  - raksha::ir::Operator::name
  - raksha::ir::Operator::number_of_return_values
  source_file: /src/raksha/src/ir/operator.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::ModuleStorageTestFixture::ModuleStorageTestFixture
  - '& module()'
  - '& type_factory()'
  - '& created_storages()'
  - raksha::ir::ModuleStorageTestFixture::name_not_in_storages
  - raksha::ir::MakeNamedStorageMapIntoStorageVector
  - raksha::ir::TestCreateStorages
  - raksha::ir::GetAddedStorageBehavesCorrectly
  - raksha::ir::GetNotPresentStorageFails
  - raksha::ir::CreateStorageSameNameDies
  - raksha::ir::AddValueToStorage
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::ModuleStorageTestFixture::ModuleStorageTestFixture
  - '& module()'
  - '& type_factory()'
  - '& created_storages()'
  - raksha::ir::ModuleStorageTestFixture::name_not_in_storages
  - raksha::ir::MakeNamedStorageMapIntoStorageVector
  - raksha::ir::TestCreateStorages
  - raksha::ir::GetAddedStorageBehavesCorrectly
  - raksha::ir::GetNotPresentStorageFails
  - raksha::ir::CreateStorageSameNameDies
  - raksha::ir::AddValueToStorage
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::ModuleStorageTestFixture::ModuleStorageTestFixture
  - '& module()'
  - '& type_factory()'
  - '& created_storages()'
  - raksha::ir::ModuleStorageTestFixture::name_not_in_storages
  - raksha::ir::MakeNamedStorageMapIntoStorageVector
  - raksha::ir::TestCreateStorages
  - raksha::ir::GetAddedStorageBehavesCorrectly
  - raksha::ir::GetNotPresentStorageFails
  - raksha::ir::CreateStorageSameNameDies
  - raksha::ir::AddValueToStorage
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::ModuleStorageTestFixture::ModuleStorageTestFixture
  - '& module()'
  - '& type_factory()'
  - '& created_storages()'
  - raksha::ir::ModuleStorageTestFixture::name_not_in_storages
  - raksha::ir::MakeNamedStorageMapIntoStorageVector
  - raksha::ir::TestCreateStorages
  - raksha::ir::GetAddedStorageBehavesCorrectly
  - raksha::ir::GetNotPresentStorageFails
  - raksha::ir::CreateStorageSameNameDies
  - raksha::ir::AddValueToStorage
  source_file: /src/raksha/src/ir/module_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::Operation::Operation
  - raksha::ir::Operation::Operation
  - raksha::ir::Operation::Operation
  - raksha::ir::Operation::Operation
  - '& operator=(const Operation&)'
  - raksha::ir::Operation::Operation
  - '& operator=(Operation&&)'
  - ~Operation()
  - '& op() const'
  - raksha::ir::Operation::parent
  - '& inputs() const'
  - '& attributes() const'
  - '& GetInputValue(uint64_t index) const'
  - raksha::ir::Operation::NumberOfOutputs
  - raksha::ir::Operation::GetOutputValue
  - raksha::ir::Operation::Accept
  - raksha::ir::Operation::Accept
  - raksha::ir::Operation::AddInput
  - raksha::ir::Operation::AddAttribute
  - raksha::ir::Operation::set_parent
  - raksha::ir::Block::Block
  - raksha::ir::Block::Block
  - '& operator=(const Block&)'
  - raksha::ir::Block::Block
  - '& operator=(Block&&)'
  - ~Block()
  - '& operations() const'
  - '& inputs() const'
  - '& outputs() const'
  - '& results() const'
  - raksha::ir::Block::parent_module
  - raksha::ir::Block::Accept
  - raksha::ir::Block::Accept
  - raksha::ir::Block::set_parent_module
  - raksha::ir::Module::Module
  - raksha::ir::Module::Module
  - '& operator=(const Module&)'
  - raksha::ir::Module::Module
  - '& operator=(Module&&)'
  - ~Module()
  - '& AddBlock(std::unique_ptr<Block> block)'
  - '& CreateStorage(absl::string_view name, ir::types::Type type)'
  - '& GetStorage(absl::string_view name) const'
  - raksha::ir::Module::AddInputValueToStorage
  - '& blocks() const'
  - '& named_storage_map() const'
  - raksha::ir::Module::Accept
  - raksha::ir::Module::Accept
  - raksha::ir::Operation::Operation
  - raksha::ir::Operation::Operation
  - raksha::ir::Operation::Operation
  - raksha::ir::Operation::Operation
  - '& operator=(const Operation&)'
  - raksha::ir::Operation::Operation
  - '& operator=(Operation&&)'
  - ~Operation()
  - '& op() const'
  - raksha::ir::Operation::parent
  - '& inputs() const'
  - '& attributes() const'
  - '& GetInputValue(uint64_t index) const'
  - raksha::ir::Operation::NumberOfOutputs
  - raksha::ir::Operation::GetOutputValue
  - raksha::ir::Operation::Accept
  - raksha::ir::Operation::Accept
  - raksha::ir::Operation::AddInput
  - raksha::ir::Operation::AddAttribute
  - raksha::ir::Operation::set_parent
  - raksha::ir::Block::Block
  - raksha::ir::Block::Block
  - '& operator=(const Block&)'
  - raksha::ir::Block::Block
  - '& operator=(Block&&)'
  - ~Block()
  - '& operations() const'
  - '& inputs() const'
  - '& outputs() const'
  - '& results() const'
  - raksha::ir::Block::parent_module
  - raksha::ir::Block::Accept
  - raksha::ir::Block::Accept
  - raksha::ir::Block::set_parent_module
  - raksha::ir::Module::Module
  - raksha::ir::Module::Module
  - '& operator=(const Module&)'
  - raksha::ir::Module::Module
  - '& operator=(Module&&)'
  - ~Module()
  - '& AddBlock(std::unique_ptr<Block> block)'
  - '& CreateStorage(absl::string_view name, ir::types::Type type)'
  - '& GetStorage(absl::string_view name) const'
  - raksha::ir::Module::AddInputValueToStorage
  - '& blocks() const'
  - '& named_storage_map() const'
  - raksha::ir::Module::Accept
  - raksha::ir::Module::Accept
  source_file: /src/raksha/src/ir/module.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::WrappedInt::WrappedInt
  - raksha::ir::WrappedInt::WrappedInt
  - raksha::ir::WrappedInt::WrappedInt
  - '& operator=(const WrappedInt&)'
  - raksha::ir::WrappedInt::WrappedInt
  - '& operator=(WrappedInt&&)'
  - ~WrappedInt()
  - operator*() const
  - raksha::ir::NonDefaultConstructorVisitor::NonDefaultConstructorVisitor
  - raksha::ir::NonDefaultConstructorVisitor::GetDefaultValue
  - raksha::ir::NonDefaultConstructorVisitor::FoldResult
  - raksha::ir::TEST
  - raksha::ir::CollectingVisitor::CollectingVisitor
  - raksha::ir::CollectingVisitor::PreVisit
  - raksha::ir::CollectingVisitor::PostVisit
  - raksha::ir::CollectingVisitor::PreVisit
  - raksha::ir::CollectingVisitor::PostVisit
  - raksha::ir::CollectingVisitor::PreVisit
  - raksha::ir::CollectingVisitor::PostVisit
  - '& nodes() const'
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::ReturningVisitor::ReturningVisitor
  - raksha::ir::ReturningVisitor::PreVisit
  - raksha::ir::ReturningVisitor::FoldResult
  - raksha::ir::ReturningVisitor::PostVisit
  - raksha::ir::ReturningVisitor::PreVisit
  - raksha::ir::ReturningVisitor::PostVisit
  - raksha::ir::ReturningVisitor::PreVisit
  - raksha::ir::ReturningVisitor::PostVisit
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::WrappedInt::WrappedInt
  - raksha::ir::WrappedInt::WrappedInt
  - raksha::ir::WrappedInt::WrappedInt
  - '& operator=(const WrappedInt&)'
  - raksha::ir::WrappedInt::WrappedInt
  - '& operator=(WrappedInt&&)'
  - ~WrappedInt()
  - operator*() const
  - raksha::ir::NonDefaultConstructorVisitor::NonDefaultConstructorVisitor
  - raksha::ir::NonDefaultConstructorVisitor::GetDefaultValue
  - raksha::ir::NonDefaultConstructorVisitor::FoldResult
  - raksha::ir::TEST
  - raksha::ir::CollectingVisitor::CollectingVisitor
  - raksha::ir::CollectingVisitor::PreVisit
  - raksha::ir::CollectingVisitor::PostVisit
  - raksha::ir::CollectingVisitor::PreVisit
  - raksha::ir::CollectingVisitor::PostVisit
  - raksha::ir::CollectingVisitor::PreVisit
  - raksha::ir::CollectingVisitor::PostVisit
  - '& nodes() const'
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::ReturningVisitor::ReturningVisitor
  - raksha::ir::ReturningVisitor::PreVisit
  - raksha::ir::ReturningVisitor::FoldResult
  - raksha::ir::ReturningVisitor::PostVisit
  - raksha::ir::ReturningVisitor::PreVisit
  - raksha::ir::ReturningVisitor::PostVisit
  - raksha::ir::ReturningVisitor::PreVisit
  - raksha::ir::ReturningVisitor::PostVisit
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::WrappedInt::WrappedInt
  - raksha::ir::WrappedInt::WrappedInt
  - raksha::ir::WrappedInt::WrappedInt
  - '& operator=(const WrappedInt&)'
  - raksha::ir::WrappedInt::WrappedInt
  - '& operator=(WrappedInt&&)'
  - ~WrappedInt()
  - operator*() const
  - raksha::ir::NonDefaultConstructorVisitor::NonDefaultConstructorVisitor
  - raksha::ir::NonDefaultConstructorVisitor::GetDefaultValue
  - raksha::ir::NonDefaultConstructorVisitor::FoldResult
  - raksha::ir::TEST
  - raksha::ir::CollectingVisitor::CollectingVisitor
  - raksha::ir::CollectingVisitor::PreVisit
  - raksha::ir::CollectingVisitor::PostVisit
  - raksha::ir::CollectingVisitor::PreVisit
  - raksha::ir::CollectingVisitor::PostVisit
  - raksha::ir::CollectingVisitor::PreVisit
  - raksha::ir::CollectingVisitor::PostVisit
  - '& nodes() const'
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::ReturningVisitor::ReturningVisitor
  - raksha::ir::ReturningVisitor::PreVisit
  - raksha::ir::ReturningVisitor::FoldResult
  - raksha::ir::ReturningVisitor::PostVisit
  - raksha::ir::ReturningVisitor::PreVisit
  - raksha::ir::ReturningVisitor::PostVisit
  - raksha::ir::ReturningVisitor::PreVisit
  - raksha::ir::ReturningVisitor::PostVisit
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::WrappedInt::WrappedInt
  - raksha::ir::WrappedInt::WrappedInt
  - raksha::ir::WrappedInt::WrappedInt
  - '& operator=(const WrappedInt&)'
  - raksha::ir::WrappedInt::WrappedInt
  - '& operator=(WrappedInt&&)'
  - ~WrappedInt()
  - operator*() const
  - raksha::ir::NonDefaultConstructorVisitor::NonDefaultConstructorVisitor
  - raksha::ir::NonDefaultConstructorVisitor::GetDefaultValue
  - raksha::ir::NonDefaultConstructorVisitor::FoldResult
  - raksha::ir::TEST
  - raksha::ir::CollectingVisitor::CollectingVisitor
  - raksha::ir::CollectingVisitor::PreVisit
  - raksha::ir::CollectingVisitor::PostVisit
  - raksha::ir::CollectingVisitor::PreVisit
  - raksha::ir::CollectingVisitor::PostVisit
  - raksha::ir::CollectingVisitor::PreVisit
  - raksha::ir::CollectingVisitor::PostVisit
  - '& nodes() const'
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::ReturningVisitor::ReturningVisitor
  - raksha::ir::ReturningVisitor::PreVisit
  - raksha::ir::ReturningVisitor::FoldResult
  - raksha::ir::ReturningVisitor::PostVisit
  - raksha::ir::ReturningVisitor::PreVisit
  - raksha::ir::ReturningVisitor::PostVisit
  - raksha::ir::ReturningVisitor::PreVisit
  - raksha::ir::ReturningVisitor::PostVisit
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  source_file: /src/raksha/src/ir/ir_traversing_visitor_test.cc
  types:
    enum:
    - enumerators:
      - name: kPre
        value: '0x1'
      - name: kPost
        value: '0x2'
      - name: kBoth
        value: '0x3'
      item_type: enum
      name: TraversalType
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    - enumerators:
      - name: kPre
        value: '0x1'
      - name: kPost
        value: '0x2'
      - name: kBoth
        value: '0x3'
      item_type: enum
      name: TraversalType
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    - enumerators:
      - name: kPre
        value: '0x1'
      - name: kPost
        value: '0x2'
      - name: kBoth
        value: '0x3'
      item_type: enum
      name: TraversalType
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    - enumerators:
      - name: kPre
        value: '0x1'
      - name: kPost
        value: '0x2'
      - name: kBoth
        value: '0x3'
      item_type: enum
      name: TraversalType
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/raksha/src/ir/ir_traversing_visitor_test.cc
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::Selector::Selector
  - raksha::ir::Selector::variant
  - raksha::ir::Selector::ToString
  - operator==(const Selector &other) const
  - raksha::ir::Selector::AbslHashValue
  - raksha::ir::Selector::Selector
  - raksha::ir::Selector::variant
  - raksha::ir::Selector::ToString
  - operator==(const Selector &other) const
  - raksha::ir::Selector::AbslHashValue
  source_file: /src/raksha/src/ir/selector.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::SsaNames::SsaNames
  - raksha::ir::SsaNames::SsaNames
  - '&operator=(const SsaNames &)'
  - raksha::ir::SsaNames::SsaNames
  - '&operator=(SsaNames &&)'
  - ~SsaNames()
  - raksha::ir::SsaNames::GetOrCreateID
  - raksha::ir::SsaNames::AddID
  - raksha::ir::SsaNames::GetOrCreateID
  - raksha::ir::SsaNames::AddID
  - raksha::ir::SsaNames::GetOrCreateID
  - raksha::ir::SsaNames::AddID
  - raksha::ir::SsaNames::IDManager::IDManager
  - raksha::ir::SsaNames::IDManager::GetOrCreateID
  - raksha::ir::SsaNames::IDManager::UpdateID
  - raksha::ir::SsaNames::IDManager::FindID
  - raksha::ir::SsaNames::SsaNames
  - raksha::ir::SsaNames::SsaNames
  - '&operator=(const SsaNames &)'
  - raksha::ir::SsaNames::SsaNames
  - '&operator=(SsaNames &&)'
  - ~SsaNames()
  - raksha::ir::SsaNames::GetOrCreateID
  - raksha::ir::SsaNames::AddID
  - raksha::ir::SsaNames::GetOrCreateID
  - raksha::ir::SsaNames::AddID
  - raksha::ir::SsaNames::GetOrCreateID
  - raksha::ir::SsaNames::AddID
  - raksha::ir::SsaNames::IDManager::IDManager
  - raksha::ir::SsaNames::IDManager::GetOrCreateID
  - raksha::ir::SsaNames::IDManager::UpdateID
  - raksha::ir::SsaNames::IDManager::FindID
  source_file: /src/raksha/src/ir/ssa_names.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::BlockBuilder::BlockBuilder
  - '& AddInput(absl::string_view name, types::Type type)'
  - '& AddOutput(absl::string_view name, types::Type type)'
  - '& AddResult(absl::string_view name, Value output)'
  - "& AddOperation(const Operator& op,\n                                NamedAttributeMap
    attributes,\n                                ValueList inputs)"
  - '& AddOperation(std::unique_ptr<Operation> op)'
  - raksha::ir::BlockBuilder::AddOperation
  - "& AddImplementation(\n      std::function<void(BlockBuilder&, Block&)> builder)"
  - raksha::ir::BlockBuilder::build
  - raksha::ir::BlockBuilder::GetBlockPtr
  - raksha::ir::BlockBuilder::IsBuilt
  - raksha::ir::BlockBuilder::BlockBuilder
  - '& AddInput(absl::string_view name, types::Type type)'
  - '& AddOutput(absl::string_view name, types::Type type)'
  - '& AddResult(absl::string_view name, Value output)'
  - "& AddOperation(const Operator& op,\n                                NamedAttributeMap
    attributes,\n                                ValueList inputs)"
  - '& AddOperation(std::unique_ptr<Operation> op)'
  - raksha::ir::BlockBuilder::AddOperation
  - "& AddImplementation(\n      std::function<void(BlockBuilder&, Block&)> builder)"
  - raksha::ir::BlockBuilder::build
  - raksha::ir::BlockBuilder::GetBlockPtr
  - raksha::ir::BlockBuilder::IsBuilt
  source_file: /src/raksha/src/ir/block_builder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  - raksha::ir::TEST_P
  source_file: /src/raksha/src/ir/field_selector_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::FieldSelector::FieldSelector
  - '&field_name() const'
  - raksha::ir::FieldSelector::ToString
  - operator==(const FieldSelector &other) const
  - raksha::ir::FieldSelector::AbslHashValue
  - raksha::ir::FieldSelector::FieldSelector
  - '&field_name() const'
  - raksha::ir::FieldSelector::ToString
  - operator==(const FieldSelector &other) const
  - raksha::ir::FieldSelector::AbslHashValue
  source_file: /src/raksha/src/ir/field_selector.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::AccessPathSelectors::AccessPathSelectors
  - raksha::ir::AccessPathSelectors::AccessPathSelectors
  - raksha::ir::AccessPathSelectors::AccessPathSelectors
  - operator==(const AccessPathSelectors &other) const
  - raksha::ir::AccessPathSelectors::ToString
  - raksha::ir::AccessPathSelectors::begin
  - raksha::ir::AccessPathSelectors::end
  - raksha::ir::AccessPathSelectors::AbslHashValue
  - raksha::ir::AccessPathSelectors::AccessPathSelectors
  - raksha::ir::AccessPathSelectors::AccessPathSelectors
  - raksha::ir::AccessPathSelectors::AccessPathSelectors
  - operator==(const AccessPathSelectors &other) const
  - raksha::ir::AccessPathSelectors::ToString
  - raksha::ir::AccessPathSelectors::begin
  - raksha::ir::AccessPathSelectors::end
  - raksha::ir::AccessPathSelectors::AbslHashValue
  source_file: /src/raksha/src/ir/access_path_selectors.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::value::IndexedValue::IndexedValue
  - raksha::ir::value::IndexedValue::AbslHashValue
  - '& element() const'
  - raksha::ir::value::IndexedValue::index
  - operator==(const IndexedValue<T>& other) const
  - '& block() const'
  - raksha::ir::value::OperationResult::MakeDefaultOperationResult
  - raksha::ir::value::OperationResult::MakeOperationResult
  - '& operation() const'
  - raksha::ir::value::StoredValue::StoredValue
  - raksha::ir::value::StoredValue::StoredValue
  - '& operator=(const StoredValue&)'
  - raksha::ir::value::StoredValue::AbslHashValue
  - '& storage() const'
  - operator==(const StoredValue& other) const
  - raksha::ir::value::Any::ToString
  - raksha::ir::value::Any::AbslHashValue
  - operator==(const Any& other) const
  - raksha::ir::value::IndexedValue::IndexedValue
  - raksha::ir::value::IndexedValue::AbslHashValue
  - '& element() const'
  - raksha::ir::value::IndexedValue::index
  - operator==(const IndexedValue<T>& other) const
  - '& block() const'
  - raksha::ir::value::OperationResult::MakeDefaultOperationResult
  - raksha::ir::value::OperationResult::MakeOperationResult
  - '& operation() const'
  - raksha::ir::value::StoredValue::StoredValue
  - raksha::ir::value::StoredValue::StoredValue
  - '& operator=(const StoredValue&)'
  - raksha::ir::value::StoredValue::AbslHashValue
  - '& storage() const'
  - operator==(const StoredValue& other) const
  - raksha::ir::value::Any::ToString
  - raksha::ir::value::Any::AbslHashValue
  - operator==(const Any& other) const
  - raksha::ir::Value::MakeDefaultOperationResultValue
  - raksha::ir::Value::MakeOperationResultValue
  - raksha::ir::Value::Value
  - raksha::ir::Value::AbslHashValue
  - raksha::ir::Value::As
  - raksha::ir::Value::If
  - operator==(const Value& other) const
  - raksha::ir::value::IndexedValue::IndexedValue
  - raksha::ir::value::IndexedValue::AbslHashValue
  - '& element() const'
  - raksha::ir::value::IndexedValue::index
  - operator==(const IndexedValue<T>& other) const
  - '& block() const'
  - raksha::ir::value::OperationResult::MakeDefaultOperationResult
  - raksha::ir::value::OperationResult::MakeOperationResult
  - '& operation() const'
  - raksha::ir::value::StoredValue::StoredValue
  - raksha::ir::value::StoredValue::StoredValue
  - '& operator=(const StoredValue&)'
  - raksha::ir::value::StoredValue::AbslHashValue
  - '& storage() const'
  - operator==(const StoredValue& other) const
  - raksha::ir::value::Any::ToString
  - raksha::ir::value::Any::AbslHashValue
  - operator==(const Any& other) const
  - raksha::ir::value::IndexedValue::IndexedValue
  - raksha::ir::value::IndexedValue::AbslHashValue
  - '& element() const'
  - raksha::ir::value::IndexedValue::index
  - operator==(const IndexedValue<T>& other) const
  - '& block() const'
  - raksha::ir::value::OperationResult::MakeDefaultOperationResult
  - raksha::ir::value::OperationResult::MakeOperationResult
  - '& operation() const'
  - raksha::ir::value::StoredValue::StoredValue
  - raksha::ir::value::StoredValue::StoredValue
  - '& operator=(const StoredValue&)'
  - raksha::ir::value::StoredValue::AbslHashValue
  - '& storage() const'
  - operator==(const StoredValue& other) const
  - raksha::ir::value::Any::ToString
  - raksha::ir::value::Any::AbslHashValue
  - operator==(const Any& other) const
  - raksha::ir::Value::MakeDefaultOperationResultValue
  - raksha::ir::Value::MakeOperationResultValue
  - raksha::ir::Value::Value
  - raksha::ir::Value::AbslHashValue
  - raksha::ir::Value::As
  - raksha::ir::Value::If
  - operator==(const Value& other) const
  source_file: /src/raksha/src/ir/value.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::IRTraversingVisitor::Get
  - raksha::ir::IRTraversingVisitor::Get
  - ~IRTraversingVisitor()
  - raksha::ir::IRTraversingVisitor::GetDefaultValue
  - raksha::ir::IRTraversingVisitor::FoldResult
  - raksha::ir::IRTraversingVisitor::PreVisit
  - raksha::ir::IRTraversingVisitor::PostVisit
  - raksha::ir::IRTraversingVisitor::PreVisit
  - raksha::ir::IRTraversingVisitor::PostVisit
  - raksha::ir::IRTraversingVisitor::PreVisit
  - raksha::ir::IRTraversingVisitor::PostVisit
  - raksha::ir::IRTraversingVisitor::Visit
  - raksha::ir::IRTraversingVisitor::Visit
  - raksha::ir::IRTraversingVisitor::Visit
  - raksha::ir::IRTraversingVisitor::Get
  - raksha::ir::IRTraversingVisitor::Get
  - ~IRTraversingVisitor()
  - raksha::ir::IRTraversingVisitor::GetDefaultValue
  - raksha::ir::IRTraversingVisitor::FoldResult
  - raksha::ir::IRTraversingVisitor::PreVisit
  - raksha::ir::IRTraversingVisitor::PostVisit
  - raksha::ir::IRTraversingVisitor::PreVisit
  - raksha::ir::IRTraversingVisitor::PostVisit
  - raksha::ir::IRTraversingVisitor::PreVisit
  - raksha::ir::IRTraversingVisitor::PostVisit
  - raksha::ir::IRTraversingVisitor::Visit
  - raksha::ir::IRTraversingVisitor::Visit
  - raksha::ir::IRTraversingVisitor::Visit
  source_file: /src/raksha/src/ir/ir_traversing_visitor.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: DefaultValueGetter
      pos:
        line_end: 44
        line_start: 38
        source_file: /src/raksha/src/ir/ir_traversing_visitor.h
    - fields: []
      item_type: struct
      name: "DefaultValueGetter<\n      ValueType, std::enable_if_t<std::is_default_constructible_v<ValueType>>>"
      pos:
        line_end: 50
        line_start: 47
        source_file: /src/raksha/src/ir/ir_traversing_visitor.h
    - fields: []
      item_type: struct
      name: DefaultValueGetter
      pos:
        line_end: 44
        line_start: 38
        source_file: /src/raksha/src/ir/ir_traversing_visitor.h
    - fields: []
      item_type: struct
      name: "DefaultValueGetter<\n      ValueType, std::enable_if_t<std::is_default_constructible_v<ValueType>>>"
      pos:
        line_end: 50
        line_start: 47
        source_file: /src/raksha/src/ir/ir_traversing_visitor.h
    typedefs: []
    union: []
- function_names:
  - raksha::ir::TestData
  - raksha::ir::TEST
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  - raksha::ir::TestData
  - raksha::ir::TEST
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  - raksha::ir::TestData
  - raksha::ir::TEST
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  - raksha::ir::TestData
  - raksha::ir::TEST
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  source_file: /src/raksha/src/ir/value_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type_factory
        type: types::TypeFactory
      - name: plus_operator
        type: Operator
      - name: minus_operator
        type: Operator
      - name: first_block
        type: Block
      - name: second_block
        type: Block
      - name: plus_operation
        type: Operation
      - name: minus_operation
        type: Operation
      - name: input_storage
        type: Storage
      - name: output_storage
        type: Storage
      - name: first_block_first_arg
        type: value::BlockArgument
      - name: first_block_second_arg
        type: value::BlockArgument
      - name: second_block_first_arg
        type: value::BlockArgument
      - name: second_block_second_arg
        type: value::BlockArgument
      - name: plus_operation_result1
        type: value::OperationResult
      - name: plus_operation_result2
        type: value::OperationResult
      - name: minus_operation_result1
        type: value::OperationResult
      - name: minus_operation_result2
        type: value::OperationResult
      - name: input_stored_value
        type: value::StoredValue
      - name: output_stored_value
        type: value::StoredValue
      - name: ssa_names
        type: SsaNames
      item_type: struct
      name: TestData
      pos:
        line_end: 89
        line_start: 34
        source_file: /src/raksha/src/ir/value_test.cc
    - fields:
      - name: type_factory
        type: types::TypeFactory
      - name: plus_operator
        type: Operator
      - name: minus_operator
        type: Operator
      - name: first_block
        type: Block
      - name: second_block
        type: Block
      - name: plus_operation
        type: Operation
      - name: minus_operation
        type: Operation
      - name: input_storage
        type: Storage
      - name: output_storage
        type: Storage
      - name: first_block_first_arg
        type: value::BlockArgument
      - name: first_block_second_arg
        type: value::BlockArgument
      - name: second_block_first_arg
        type: value::BlockArgument
      - name: second_block_second_arg
        type: value::BlockArgument
      - name: plus_operation_result1
        type: value::OperationResult
      - name: plus_operation_result2
        type: value::OperationResult
      - name: minus_operation_result1
        type: value::OperationResult
      - name: minus_operation_result2
        type: value::OperationResult
      - name: input_stored_value
        type: value::StoredValue
      - name: output_stored_value
        type: value::StoredValue
      - name: ssa_names
        type: SsaNames
      item_type: struct
      name: TestData
      pos:
        line_end: 89
        line_start: 34
        source_file: /src/raksha/src/ir/value_test.cc
    - fields:
      - name: type_factory
        type: types::TypeFactory
      - name: plus_operator
        type: Operator
      - name: minus_operator
        type: Operator
      - name: first_block
        type: Block
      - name: second_block
        type: Block
      - name: plus_operation
        type: Operation
      - name: minus_operation
        type: Operation
      - name: input_storage
        type: Storage
      - name: output_storage
        type: Storage
      - name: first_block_first_arg
        type: value::BlockArgument
      - name: first_block_second_arg
        type: value::BlockArgument
      - name: second_block_first_arg
        type: value::BlockArgument
      - name: second_block_second_arg
        type: value::BlockArgument
      - name: plus_operation_result1
        type: value::OperationResult
      - name: plus_operation_result2
        type: value::OperationResult
      - name: minus_operation_result1
        type: value::OperationResult
      - name: minus_operation_result2
        type: value::OperationResult
      - name: input_stored_value
        type: value::StoredValue
      - name: output_stored_value
        type: value::StoredValue
      - name: ssa_names
        type: SsaNames
      item_type: struct
      name: TestData
      pos:
        line_end: 89
        line_start: 34
        source_file: /src/raksha/src/ir/value_test.cc
    - fields:
      - name: type_factory
        type: types::TypeFactory
      - name: plus_operator
        type: Operator
      - name: minus_operator
        type: Operator
      - name: first_block
        type: Block
      - name: second_block
        type: Block
      - name: plus_operation
        type: Operation
      - name: minus_operation
        type: Operation
      - name: input_storage
        type: Storage
      - name: output_storage
        type: Storage
      - name: first_block_first_arg
        type: value::BlockArgument
      - name: first_block_second_arg
        type: value::BlockArgument
      - name: second_block_first_arg
        type: value::BlockArgument
      - name: second_block_second_arg
        type: value::BlockArgument
      - name: plus_operation_result1
        type: value::OperationResult
      - name: plus_operation_result2
        type: value::OperationResult
      - name: minus_operation_result1
        type: value::OperationResult
      - name: minus_operation_result2
        type: value::OperationResult
      - name: input_stored_value
        type: value::StoredValue
      - name: output_stored_value
        type: value::StoredValue
      - name: ssa_names
        type: SsaNames
      item_type: struct
      name: TestData
      pos:
        line_end: 89
        line_start: 34
        source_file: /src/raksha/src/ir/value_test.cc
    typedefs: []
    union: []
- function_names:
  - raksha::ir::ProtoToIR::PreVisit
  - raksha::ir::ProtoToIR::PreVisit
  - raksha::ir::ProtoToIR::PreVisit
  - raksha::ir::ProtoToIR::PreVisit
  - raksha::ir::ProtoToIR::PreVisit
  - raksha::ir::ProtoToIR::PreVisit
  - raksha::ir::ProtoToIR::PreVisit
  - raksha::ir::ProtoToIR::PreVisit
  - raksha::ir::ProtoToIR::PostVisit
  - raksha::ir::ProtoToIR::PostVisit
  - raksha::ir::ProtoToIR::PostVisit
  - raksha::ir::ProtoToIR::PostVisit
  - raksha::ir::ProtoToIR::PostVisit
  - raksha::ir::ProtoToIR::PostVisit
  - raksha::ir::ProtoToIR::PostVisit
  - raksha::ir::ProtoToIR::PostVisit
  - raksha::ir::ProtoToIR::ToIR
  - raksha::ir::ProtoToIR::ToIR
  - raksha::ir::ProtoToIR::ToIR
  - raksha::ir::ProtoToIR::ToIR
  - raksha::ir::ProtoToIR::ToIR
  - raksha::ir::ProtoToIR::ToIR
  - raksha::ir::ProtoToIR::ToIR
  - raksha::ir::ProtoToIR::ToIR
  - raksha::ir::ProtoToIR::PreVisit
  - raksha::ir::ProtoToIR::PreVisit
  - raksha::ir::ProtoToIR::PreVisit
  - raksha::ir::ProtoToIR::PreVisit
  - raksha::ir::ProtoToIR::PreVisit
  - raksha::ir::ProtoToIR::PreVisit
  - raksha::ir::ProtoToIR::PreVisit
  - raksha::ir::ProtoToIR::PreVisit
  - raksha::ir::ProtoToIR::PostVisit
  - raksha::ir::ProtoToIR::PostVisit
  - raksha::ir::ProtoToIR::PostVisit
  - raksha::ir::ProtoToIR::PostVisit
  - raksha::ir::ProtoToIR::PostVisit
  - raksha::ir::ProtoToIR::PostVisit
  - raksha::ir::ProtoToIR::PostVisit
  - raksha::ir::ProtoToIR::PostVisit
  - raksha::ir::ProtoToIR::ToIR
  - raksha::ir::ProtoToIR::ToIR
  - raksha::ir::ProtoToIR::ToIR
  - raksha::ir::ProtoToIR::ToIR
  - raksha::ir::ProtoToIR::ToIR
  - raksha::ir::ProtoToIR::ToIR
  - raksha::ir::ProtoToIR::ToIR
  - raksha::ir::ProtoToIR::ToIR
  source_file: /src/raksha/src/ir/proto_to_ir.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::ValueToString
  - raksha::ir::StoredValueToString
  - raksha::ir::ValueToString
  - raksha::ir::StoredValueToString
  source_file: /src/raksha/src/ir/value_string_converter.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::IRPrinterTest::IRPrinterTest
  - '& plus_op() const'
  - '& minus_op() const'
  - '& block() const'
  - '& global_module() const'
  - raksha::ir::IRPrinterTest::ToString
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  - raksha::ir::EliminateWhitespaceAndComments
  - raksha::ir::TEST_P
  - raksha::ir::IRPrinterTest::IRPrinterTest
  - '& plus_op() const'
  - '& minus_op() const'
  - '& block() const'
  - '& global_module() const'
  - raksha::ir::IRPrinterTest::ToString
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  - raksha::ir::EliminateWhitespaceAndComments
  - raksha::ir::TEST_P
  - raksha::ir::IRPrinterTest::IRPrinterTest
  - '& plus_op() const'
  - '& minus_op() const'
  - '& block() const'
  - '& global_module() const'
  - raksha::ir::IRPrinterTest::ToString
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  - raksha::ir::EliminateWhitespaceAndComments
  - raksha::ir::TEST_P
  - raksha::ir::IRPrinterTest::IRPrinterTest
  - '& plus_op() const'
  - '& minus_op() const'
  - '& block() const'
  - '& global_module() const'
  - raksha::ir::IRPrinterTest::ToString
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  - raksha::ir::EliminateWhitespaceAndComments
  - raksha::ir::TEST_P
  source_file: /src/raksha/src/ir/ir_printer_test.cc
  types:
    enum:
    - enumerators:
      - name: kToString
      - name: kToStringOstream
      - name: kOperator
      item_type: enum
      name: ToStringVariant
      pos:
        line_end: 42
        line_start: 35
        source_file: /src/raksha/src/ir/ir_printer_test.cc
    - enumerators:
      - name: kToString
      - name: kToStringOstream
      - name: kOperator
      item_type: enum
      name: ToStringVariant
      pos:
        line_end: 42
        line_start: 35
        source_file: /src/raksha/src/ir/ir_printer_test.cc
    - enumerators:
      - name: kToString
      - name: kToStringOstream
      - name: kOperator
      item_type: enum
      name: ToStringVariant
      pos:
        line_end: 42
        line_start: 35
        source_file: /src/raksha/src/ir/ir_printer_test.cc
    - enumerators:
      - name: kToString
      - name: kToStringOstream
      - name: kOperator
      item_type: enum
      name: ToStringVariant
      pos:
        line_end: 42
        line_start: 35
        source_file: /src/raksha/src/ir/ir_printer_test.cc
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  source_file: /src/raksha/src/ir/operator_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/ir/value_string_converter.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::SeededStorageTest::SeededStorageTest
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::SeededStorageTest::SeededStorageTest
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::SeededStorageTest::SeededStorageTest
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::SeededStorageTest::SeededStorageTest
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST
  - raksha::ir::TEST
  source_file: /src/raksha/src/ir/ir_context_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::BlockBuilderTest::BlockBuilderTest
  - raksha::ir::BlockBuilderTest::MakeTestEntityType
  - raksha::ir::BlockBuilderTest::MakePrimitiveType
  - raksha::ir::TEST_F
  - raksha::ir::CheckExpectedDecls
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TestOperation::Create
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::BlockBuilderTest::BlockBuilderTest
  - raksha::ir::BlockBuilderTest::MakeTestEntityType
  - raksha::ir::BlockBuilderTest::MakePrimitiveType
  - raksha::ir::TEST_F
  - raksha::ir::CheckExpectedDecls
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TestOperation::Create
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::BlockBuilderTest::BlockBuilderTest
  - raksha::ir::BlockBuilderTest::MakeTestEntityType
  - raksha::ir::BlockBuilderTest::MakePrimitiveType
  - raksha::ir::TEST_F
  - raksha::ir::CheckExpectedDecls
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TestOperation::Create
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::BlockBuilderTest::BlockBuilderTest
  - raksha::ir::BlockBuilderTest::MakeTestEntityType
  - raksha::ir::BlockBuilderTest::MakePrimitiveType
  - raksha::ir::TEST_F
  - raksha::ir::CheckExpectedDecls
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TestOperation::Create
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  source_file: /src/raksha/src/ir/block_builder_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::MakeSelectorAccessPathFromString
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  - raksha::ir::MakeSelectorAccessPathFromString
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  source_file: /src/raksha/src/ir/access_path_selectors_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::DataDecl::DataDecl
  - raksha::ir::DataDecl::name
  - '& type() const'
  - '& AddDecl(absl::string_view name, types::Type type)'
  - raksha::ir::DataDeclCollection::FindDecl
  - raksha::ir::DataDecl::DataDecl
  - raksha::ir::DataDecl::name
  - '& type() const'
  - '& AddDecl(absl::string_view name, types::Type type)'
  - raksha::ir::DataDeclCollection::FindDecl
  source_file: /src/raksha/src/ir/data_decl.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::IRPrinter::ToString
  - raksha::ir::IRPrinter::ToString
  - raksha::ir::IRPrinter::ToString
  - raksha::ir::IRPrinter::ToString
  - raksha::ir::IRPrinter::PreVisit
  - raksha::ir::IRPrinter::PostVisit
  - raksha::ir::IRPrinter::PreVisit
  - raksha::ir::IRPrinter::PostVisit
  - raksha::ir::IRPrinter::PreVisit
  - raksha::ir::IRPrinter::PostVisit
  - raksha::ir::IRPrinter::PrintNamedMapInNameOrder
  - raksha::ir::IRPrinter::Indent
  - raksha::ir::IRPrinter::IncreaseIndent
  - raksha::ir::IRPrinter::DecreaseIndent
  - raksha::ir::IRPrinter::IRPrinter
  - '& operator<<(std::ostream& out, const Operation& operation)'
  - '& operator<<(std::ostream& out, const Block& block)'
  - '& operator<<(std::ostream& out, const Module& module)'
  - raksha::ir::IRPrinter::ToString
  - raksha::ir::IRPrinter::ToString
  - raksha::ir::IRPrinter::ToString
  - raksha::ir::IRPrinter::ToString
  - raksha::ir::IRPrinter::PreVisit
  - raksha::ir::IRPrinter::PostVisit
  - raksha::ir::IRPrinter::PreVisit
  - raksha::ir::IRPrinter::PostVisit
  - raksha::ir::IRPrinter::PreVisit
  - raksha::ir::IRPrinter::PostVisit
  - raksha::ir::IRPrinter::PrintNamedMapInNameOrder
  - raksha::ir::IRPrinter::Indent
  - raksha::ir::IRPrinter::IncreaseIndent
  - raksha::ir::IRPrinter::DecreaseIndent
  - raksha::ir::IRPrinter::IRPrinter
  - '& operator<<(std::ostream& out, const Operation& operation)'
  - '& operator<<(std::ostream& out, const Block& block)'
  - '& operator<<(std::ostream& out, const Module& module)'
  source_file: /src/raksha/src/ir/ir_printer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::SsaNamesTest<Value>::SsaNamesTest
  - raksha::ir::TYPED_TEST
  - raksha::ir::TYPED_TEST
  - raksha::ir::SsaNamesTest<Value>::SsaNamesTest
  - raksha::ir::TYPED_TEST
  - raksha::ir::TYPED_TEST
  - raksha::ir::SsaNamesTest<Value>::SsaNamesTest
  - raksha::ir::TYPED_TEST
  - raksha::ir::TYPED_TEST
  - raksha::ir::SsaNamesTest<Value>::SsaNamesTest
  - raksha::ir::TYPED_TEST
  - raksha::ir::TYPED_TEST
  source_file: /src/raksha/src/ir/ssa_names_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::IRToProto::ModuleToProto
  - raksha::ir::IRToProto::BlockToProto
  - raksha::ir::IRToProto::OperationToProto
  - raksha::ir::IRToProto::ValueToProto
  - raksha::ir::IRToProto::AnyToProto
  - raksha::ir::IRToProto::BlockArgumentToProto
  - raksha::ir::IRToProto::OperationResultToProto
  - raksha::ir::IRToProto::AttributeToProto
  - raksha::ir::IRToProto::ModuleToProto
  - raksha::ir::IRToProto::BlockToProto
  - raksha::ir::IRToProto::OperationToProto
  - raksha::ir::IRToProto::ValueToProto
  - raksha::ir::IRToProto::AnyToProto
  - raksha::ir::IRToProto::BlockArgumentToProto
  - raksha::ir::IRToProto::OperationResultToProto
  - raksha::ir::IRToProto::AttributeToProto
  source_file: /src/raksha/src/ir/ir_to_proto.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  source_file: /src/raksha/src/ir/ir_to_proto_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::DataDeclTestBase::MakeTestEntityType
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::DataDeclTestBase::MakeTestEntityType
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::DataDeclTestBase::MakeTestEntityType
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::DataDeclTestBase::MakeTestEntityType
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  source_file: /src/raksha/src/ir/data_decl_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  source_file: /src/raksha/src/ir/operation_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* block'
        type: Block
      - name: '* op'
        type: Operator
      - name: attributes
        type: NamedAttributeMap
      - name: values
        type: ValueList
      - name: string_rep
        type: absl::string_view
      item_type: struct
      name: OperationTestData
      pos:
        line_end: 37
        line_start: 30
        source_file: /src/raksha/src/ir/operation_test.cc
    - fields:
      - name: '* block'
        type: Block
      - name: '* op'
        type: Operator
      - name: attributes
        type: NamedAttributeMap
      - name: values
        type: ValueList
      - name: string_rep
        type: absl::string_view
      item_type: struct
      name: OperationTestData
      pos:
        line_end: 37
        line_start: 30
        source_file: /src/raksha/src/ir/operation_test.cc
    - fields:
      - name: '* block'
        type: Block
      - name: '* op'
        type: Operator
      - name: attributes
        type: NamedAttributeMap
      - name: values
        type: ValueList
      - name: string_rep
        type: absl::string_view
      item_type: struct
      name: OperationTestData
      pos:
        line_end: 37
        line_start: 30
        source_file: /src/raksha/src/ir/operation_test.cc
    - fields:
      - name: '* block'
        type: Block
      - name: '* op'
        type: Operator
      - name: attributes
        type: NamedAttributeMap
      - name: values
        type: ValueList
      - name: string_rep
        type: absl::string_view
      item_type: struct
      name: OperationTestData
      pos:
        line_end: 37
        line_start: 30
        source_file: /src/raksha/src/ir/operation_test.cc
    typedefs: []
    union: []
- function_names:
  - raksha::ir::ProtoToIR::Convert
  - raksha::ir::ProtoToIR::Convert
  - raksha::ir::ProtoToIR::ProtoToIR
  - raksha::ir::ProtoToIR::ProtoToIR
  - '& operator=(const ProtoToIR&)'
  - raksha::ir::ProtoToIR::ProtoToIR
  - '& operator=(ProtoToIR&&)'
  - ~ProtoToIR()
  - raksha::ir::ProtoToIR::Convert
  - raksha::ir::ProtoToIR::Convert
  - raksha::ir::ProtoToIR::ProtoToIR
  - raksha::ir::ProtoToIR::ProtoToIR
  - '& operator=(const ProtoToIR&)'
  - raksha::ir::ProtoToIR::ProtoToIR
  - '& operator=(ProtoToIR&&)'
  - ~ProtoToIR()
  source_file: /src/raksha/src/ir/proto_to_ir.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: module
        type: std::unique_ptr<Module>
      - name: ssa_names
        type: std::unique_ptr<SsaNames>
      item_type: struct
      name: Result
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/raksha/src/ir/proto_to_ir.h
    - fields:
      - name: module
        type: std::unique_ptr<Module>
      - name: ssa_names
        type: std::unique_ptr<SsaNames>
      item_type: struct
      name: Result
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/raksha/src/ir/proto_to_ir.h
    typedefs: []
    union: []
- function_names:
  - ~IRVisitor()
  - ~IRVisitor()
  source_file: /src/raksha/src/ir/ir_visitor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::Storage::Storage
  - raksha::ir::Storage::Storage
  - '& operator=(const Storage&)'
  - raksha::ir::Storage::Storage
  - '& operator=(Storage&&)'
  - ~Storage()
  - raksha::ir::Storage::AddInputValue
  - raksha::ir::Storage::name
  - '& type() const'
  - '& input_values() const'
  - raksha::ir::Storage::ToString
  - raksha::ir::Storage::Storage
  - raksha::ir::Storage::Storage
  - '& operator=(const Storage&)'
  - raksha::ir::Storage::Storage
  - '& operator=(Storage&&)'
  - ~Storage()
  - raksha::ir::Storage::AddInputValue
  - raksha::ir::Storage::name
  - '& type() const'
  - '& input_values() const'
  - raksha::ir::Storage::ToString
  source_file: /src/raksha/src/ir/storage.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  - raksha::ir::TEST_F
  source_file: /src/raksha/src/ir/storage_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::AccessPathSelectorsSet::AccessPathSelectorsSet
  - raksha::ir::AccessPathSelectorsSet::AccessPathSelectorsSet
  - raksha::ir::AccessPathSelectorsSet::Union
  - raksha::ir::AccessPathSelectorsSet::Intersect
  - raksha::ir::AccessPathSelectorsSet::AddParentToAll
  - raksha::ir::AccessPathSelectorsSet::CreateAbslSet
  - raksha::ir::AccessPathSelectorsSet::AccessPathSelectorsSet
  - raksha::ir::AccessPathSelectorsSet::AccessPathSelectorsSet
  - raksha::ir::AccessPathSelectorsSet::Union
  - raksha::ir::AccessPathSelectorsSet::Intersect
  - raksha::ir::AccessPathSelectorsSet::AddParentToAll
  - raksha::ir::AccessPathSelectorsSet::CreateAbslSet
  source_file: /src/raksha/src/ir/access_path_selectors_set.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::TEST
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  source_file: /src/raksha/src/ir/attributes/int_attribute_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::FloatAttribute::Create
  - raksha::ir::FloatAttribute::value
  - raksha::ir::FloatAttribute::IsEqual
  - raksha::ir::FloatAttribute::ToString
  - raksha::ir::FloatAttribute::FloatAttribute
  - operator==(const FloatAttribute& lhs, const FloatAttribute& rhs)
  - raksha::ir::FloatAttribute::Create
  - raksha::ir::FloatAttribute::value
  - raksha::ir::FloatAttribute::IsEqual
  - raksha::ir::FloatAttribute::ToString
  - raksha::ir::FloatAttribute::FloatAttribute
  - operator==(const FloatAttribute& lhs, const FloatAttribute& rhs)
  source_file: /src/raksha/src/ir/attributes/float_attribute.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::Int64Attribute::Create
  - raksha::ir::Int64Attribute::value
  - raksha::ir::Int64Attribute::IsEqual
  - raksha::ir::Int64Attribute::ToString
  - raksha::ir::Int64Attribute::Int64Attribute
  - operator==(const Int64Attribute& lhs, const Int64Attribute& rhs)
  - raksha::ir::Int64Attribute::Create
  - raksha::ir::Int64Attribute::value
  - raksha::ir::Int64Attribute::IsEqual
  - raksha::ir::Int64Attribute::ToString
  - raksha::ir::Int64Attribute::Int64Attribute
  - operator==(const Int64Attribute& lhs, const Int64Attribute& rhs)
  source_file: /src/raksha/src/ir/attributes/int_attribute.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::CreateTestAttribute
  - raksha::ir::CreateTestAttribute
  - raksha::ir::CreateTestAttribute
  - raksha::ir::AttributeWithId
  - raksha::ir::TEST_P
  - raksha::ir::TYPED_TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::CreateTestAttribute
  - raksha::ir::CreateTestAttribute
  - raksha::ir::CreateTestAttribute
  - raksha::ir::AttributeWithId
  - raksha::ir::TEST_P
  - raksha::ir::TYPED_TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::CreateTestAttribute
  - raksha::ir::CreateTestAttribute
  - raksha::ir::CreateTestAttribute
  - raksha::ir::AttributeWithId
  - raksha::ir::TEST_P
  - raksha::ir::TYPED_TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  - raksha::ir::CreateTestAttribute
  - raksha::ir::CreateTestAttribute
  - raksha::ir::CreateTestAttribute
  - raksha::ir::AttributeWithId
  - raksha::ir::TEST_P
  - raksha::ir::TYPED_TEST
  - raksha::ir::TEST
  - raksha::ir::TEST
  source_file: /src/raksha/src/ir/attributes/attribute_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: id
        type: int
      - name: attribute
        type: Attribute
      item_type: struct
      name: AttributeWithId
      pos:
        line_end: 68
        line_start: 64
        source_file: /src/raksha/src/ir/attributes/attribute_test.cc
    - fields:
      - name: id
        type: int
      - name: attribute
        type: Attribute
      item_type: struct
      name: AttributeWithId
      pos:
        line_end: 68
        line_start: 64
        source_file: /src/raksha/src/ir/attributes/attribute_test.cc
    - fields:
      - name: id
        type: int
      - name: attribute
        type: Attribute
      item_type: struct
      name: AttributeWithId
      pos:
        line_end: 68
        line_start: 64
        source_file: /src/raksha/src/ir/attributes/attribute_test.cc
    - fields:
      - name: id
        type: int
      - name: attribute
        type: Attribute
      item_type: struct
      name: AttributeWithId
      pos:
        line_end: 68
        line_start: 64
        source_file: /src/raksha/src/ir/attributes/attribute_test.cc
    typedefs: []
    union: []
- function_names:
  - raksha::ir::TEST
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  source_file: /src/raksha/src/ir/attributes/float_attribute_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::AttributeBase::AttributeBase
  - raksha::ir::AttributeBase::AttributeBase
  - '& operator=(const AttributeBase&)'
  - raksha::ir::AttributeBase::AttributeBase
  - '& operator=(AttributeBase&&)'
  - ~AttributeBase()
  - raksha::ir::AttributeBase::kind
  - raksha::ir::Attribute::Create
  - raksha::ir::Attribute::GetIf
  - raksha::ir::Attribute::ToString
  - raksha::ir::Attribute::Attribute
  - operator==(const Attribute& lhs, const Attribute& rhs)
  - raksha::ir::AttributeBase::AttributeBase
  - raksha::ir::AttributeBase::AttributeBase
  - '& operator=(const AttributeBase&)'
  - raksha::ir::AttributeBase::AttributeBase
  - '& operator=(AttributeBase&&)'
  - ~AttributeBase()
  - raksha::ir::AttributeBase::kind
  - raksha::ir::Attribute::Create
  - raksha::ir::Attribute::GetIf
  - raksha::ir::Attribute::ToString
  - raksha::ir::Attribute::Attribute
  - operator==(const Attribute& lhs, const Attribute& rhs)
  source_file: /src/raksha/src/ir/attributes/attribute.h
  types:
    enum:
    - enumerators:
      - name: kInt64
      - name: kFloat
      - name: kString
      item_type: enum
      name: Kind
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/raksha/src/ir/attributes/attribute.h
    - enumerators:
      - name: kInt64
      - name: kFloat
      - name: kString
      item_type: enum
      name: Kind
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/raksha/src/ir/attributes/attribute.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::StringAttribute::Create
  - raksha::ir::StringAttribute::value
  - raksha::ir::StringAttribute::IsEqual
  - raksha::ir::StringAttribute::ToString
  - raksha::ir::StringAttribute::StringAttribute
  - operator==(const StringAttribute& lhs, const StringAttribute& rhs)
  - raksha::ir::StringAttribute::Create
  - raksha::ir::StringAttribute::value
  - raksha::ir::StringAttribute::IsEqual
  - raksha::ir::StringAttribute::ToString
  - raksha::ir::StringAttribute::StringAttribute
  - operator==(const StringAttribute& lhs, const StringAttribute& rhs)
  source_file: /src/raksha/src/ir/attributes/string_attribute.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::TEST
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  - raksha::ir::TEST
  - raksha::ir::TEST_P
  - raksha::ir::TEST_P
  source_file: /src/raksha/src/ir/attributes/string_attribute_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::types::MakeAnonymousSchema
  - raksha::ir::types::MakeEntityTypeWithAnonymousSchema
  - raksha::ir::types::MakeMinimalTypeFromAccessPathFieldVec
  - raksha::ir::types::MakeMinimalTypeFromAccessPathStrings
  - raksha::ir::types::GetAccessPathStrVecFromAccessPathSelectorsSet
  - raksha::ir::types::TEST_P
  - raksha::ir::types::TEST_P
  - raksha::ir::types::TEST_P
  - raksha::ir::types::TEST
  - raksha::ir::types::MakeAnonymousSchema
  - raksha::ir::types::MakeEntityTypeWithAnonymousSchema
  - raksha::ir::types::MakeMinimalTypeFromAccessPathFieldVec
  - raksha::ir::types::MakeMinimalTypeFromAccessPathStrings
  - raksha::ir::types::GetAccessPathStrVecFromAccessPathSelectorsSet
  - raksha::ir::types::TEST_P
  - raksha::ir::types::TEST_P
  - raksha::ir::types::TEST_P
  - raksha::ir::types::TEST
  source_file: /src/raksha/src/ir/types/type_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::types::TEST
  - raksha::ir::types::TEST
  - raksha::ir::types::TEST
  - raksha::ir::types::TEST
  source_file: /src/raksha/src/ir/types/primitive_type_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::types::Schema::GetAccessPathSelectorsSet
  - raksha::ir::types::Schema::GetAccessPathSelectorsSet
  source_file: /src/raksha/src/ir/types/schema.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::types::TypeBase::TypeBase
  - raksha::ir::types::TypeBase::TypeBase
  - '& operator=(const TypeBase&)'
  - raksha::ir::types::TypeBase::TypeBase
  - '& operator=(TypeBase&&)'
  - ~TypeBase()
  - raksha::ir::types::Type::GetAccessPathSelectorsSet
  - '& type_base() const'
  - raksha::ir::types::Type::Type
  - raksha::ir::types::TypeBase::TypeBase
  - raksha::ir::types::TypeBase::TypeBase
  - '& operator=(const TypeBase&)'
  - raksha::ir::types::TypeBase::TypeBase
  - '& operator=(TypeBase&&)'
  - ~TypeBase()
  - raksha::ir::types::Type::GetAccessPathSelectorsSet
  - '& type_base() const'
  - raksha::ir::types::Type::Type
  source_file: /src/raksha/src/ir/types/type.h
  types:
    enum:
    - enumerators:
      - name: kPrimitive
      - name: kEntity
      item_type: enum
      name: Kind
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/raksha/src/ir/types/type.h
    - enumerators:
      - name: kPrimitive
      - name: kEntity
      item_type: enum
      name: Kind
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/raksha/src/ir/types/type.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::types::TypeFactory::MakePrimitiveType
  - raksha::ir::types::TypeFactory::MakeEntityType
  - "& TypeFactory::RegisterSchema(\n    std::optional<std::string> name,\n    absl::flat_hash_map<std::string,
    Type> fields)"
  - raksha::ir::types::TypeFactory::MakePrimitiveType
  - raksha::ir::types::TypeFactory::MakeEntityType
  - "& TypeFactory::RegisterSchema(\n    std::optional<std::string> name,\n    absl::flat_hash_map<std::string,
    Type> fields)"
  source_file: /src/raksha/src/ir/types/type_factory.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - '& name() const'
  - '& fields() const'
  - raksha::ir::types::Schema::ToString
  - raksha::ir::types::Schema::Schema
  - '& name() const'
  - '& fields() const'
  - raksha::ir::types::Schema::ToString
  - raksha::ir::types::Schema::Schema
  source_file: /src/raksha/src/ir/types/schema.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/ir/types/type_factory.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::types::EntityType::EntityType
  - raksha::ir::types::EntityType::kind
  - raksha::ir::types::EntityType::GetAccessPathSelectorsSet
  - '& schema() const'
  - raksha::ir::types::EntityType::EntityType
  - raksha::ir::types::EntityType::kind
  - raksha::ir::types::EntityType::GetAccessPathSelectorsSet
  - '& schema() const'
  source_file: /src/raksha/src/ir/types/entity_type.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::types::PrimitiveType::PrimitiveType
  - raksha::ir::types::PrimitiveType::kind
  - raksha::ir::types::PrimitiveType::GetAccessPathSelectorsSet
  - raksha::ir::types::PrimitiveType::PrimitiveType
  - raksha::ir::types::PrimitiveType::kind
  - raksha::ir::types::PrimitiveType::GetAccessPathSelectorsSet
  source_file: /src/raksha/src/ir/types/primitive_type.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::types::TEST_P
  - raksha::ir::types::TEST_P
  source_file: /src/raksha/src/ir/types/schema_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::types::proto::TEST_P
  - raksha::ir::types::proto::TEST_P
  - raksha::ir::types::proto::TEST_P
  - raksha::ir::types::proto::TEST_P
  source_file: /src/raksha/src/ir/types/proto/primitive_type_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::types::proto::decode
  - raksha::ir::types::proto::encode
  - raksha::ir::types::proto::decode
  - raksha::ir::types::proto::encode
  source_file: /src/raksha/src/ir/types/proto/schema.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::types::proto::TEST_P
  - raksha::ir::types::proto::TEST_P
  source_file: /src/raksha/src/ir/types/proto/entity_type_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::types::proto::Decode
  - raksha::ir::types::proto::Encode
  - raksha::ir::types::proto::Decode
  - raksha::ir::types::proto::Encode
  source_file: /src/raksha/src/ir/types/proto/type.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/ir/types/proto/type.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::types::proto::decode
  - raksha::ir::types::proto::encode
  - raksha::ir::types::proto::encodeAsTypeProto
  - raksha::ir::types::proto::decode
  - raksha::ir::types::proto::encode
  - raksha::ir::types::proto::encodeAsTypeProto
  source_file: /src/raksha/src/ir/types/proto/entity_type.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/ir/types/proto/schema.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::types::proto::decode
  - raksha::ir::types::proto::encode
  - raksha::ir::types::proto::encodeAsTypeProto
  - raksha::ir::types::proto::decode
  - raksha::ir::types::proto::encode
  - raksha::ir::types::proto::encodeAsTypeProto
  source_file: /src/raksha/src/ir/types/proto/primitive_type.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/ir/types/proto/entity_type.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/ir/types/proto/primitive_type.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::dot::DotGeneratorHelper::ModuleAsDot
  - raksha::ir::dot::DotGeneratorHelper::DotGeneratorHelper
  - raksha::ir::dot::DotGeneratorHelper::GetNodeName
  - raksha::ir::dot::DotGeneratorHelper::GetNodeName
  - raksha::ir::dot::DotGeneratorHelper::GetNodeName
  - raksha::ir::dot::DotGeneratorHelper::AddEdge
  - raksha::ir::dot::DotGeneratorHelper::AddOperationNode
  - raksha::ir::dot::DotGeneratorHelper::AddBlockNode
  - raksha::ir::dot::DotGeneratorHelper::AddResult
  - raksha::ir::dot::GetEmptyStringBtreeSet
  - raksha::ir::dot::GetEmptyStringBtreeSet
  - raksha::ir::dot::DotGeneratorHelper::GetDotNode
  - raksha::ir::dot::DotGeneratorHelper::GetDotGraph
  - raksha::ir::dot::DotGeneratorHelper::PreVisit
  - raksha::ir::dot::DotGeneratorHelper::PreVisit
  - raksha::ir::dot::DotGenerator::ModuleAsDot
  - raksha::ir::dot::DotGeneratorHelper::ModuleAsDot
  - raksha::ir::dot::DotGeneratorHelper::DotGeneratorHelper
  - raksha::ir::dot::DotGeneratorHelper::GetNodeName
  - raksha::ir::dot::DotGeneratorHelper::GetNodeName
  - raksha::ir::dot::DotGeneratorHelper::GetNodeName
  - raksha::ir::dot::DotGeneratorHelper::AddEdge
  - raksha::ir::dot::DotGeneratorHelper::AddOperationNode
  - raksha::ir::dot::DotGeneratorHelper::AddBlockNode
  - raksha::ir::dot::DotGeneratorHelper::AddResult
  - raksha::ir::dot::GetEmptyStringBtreeSet
  - raksha::ir::dot::GetEmptyStringBtreeSet
  - raksha::ir::dot::DotGeneratorHelper::GetDotNode
  - raksha::ir::dot::DotGeneratorHelper::GetDotGraph
  - raksha::ir::dot::DotGeneratorHelper::PreVisit
  - raksha::ir::dot::DotGeneratorHelper::PreVisit
  - raksha::ir::dot::DotGenerator::ModuleAsDot
  source_file: /src/raksha/src/ir/dot/dot_generator.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::dot::DotGeneratorTest::DotGeneratorTest
  - '& pair_op() const'
  - '& plus_op() const'
  - '& minus_op() const'
  - '& global_module()'
  - raksha::ir::dot::DotGeneratorTest::GetDotGraphAsWhitespaceTrimmedLines
  - raksha::ir::dot::DotGeneratorTest::GetNodes
  - raksha::ir::dot::DotGeneratorTest::GetEdges
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::DotGeneratorTest::DotGeneratorTest
  - '& pair_op() const'
  - '& plus_op() const'
  - '& minus_op() const'
  - '& global_module()'
  - raksha::ir::dot::DotGeneratorTest::GetDotGraphAsWhitespaceTrimmedLines
  - raksha::ir::dot::DotGeneratorTest::GetNodes
  - raksha::ir::dot::DotGeneratorTest::GetEdges
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::DotGeneratorTest::DotGeneratorTest
  - '& pair_op() const'
  - '& plus_op() const'
  - '& minus_op() const'
  - '& global_module()'
  - raksha::ir::dot::DotGeneratorTest::GetDotGraphAsWhitespaceTrimmedLines
  - raksha::ir::dot::DotGeneratorTest::GetNodes
  - raksha::ir::dot::DotGeneratorTest::GetEdges
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::DotGeneratorTest::DotGeneratorTest
  - '& pair_op() const'
  - '& plus_op() const'
  - '& minus_op() const'
  - '& global_module()'
  - raksha::ir::dot::DotGeneratorTest::GetDotGraphAsWhitespaceTrimmedLines
  - raksha::ir::dot::DotGeneratorTest::GetNodes
  - raksha::ir::dot::DotGeneratorTest::GetEdges
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  - raksha::ir::dot::TEST_F
  source_file: /src/raksha/src/ir/dot/dot_generator_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::dot::GetDefault
  - raksha::ir::dot::GetDefault
  source_file: /src/raksha/src/ir/dot/dot_generator_config.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: operation_labeler
        type: "std::function<std::string(const Operation&,\n                            const
          absl::btree_set<std::string>&)>"
      item_type: struct
      name: DotGeneratorConfig
      pos:
        line_end: 38
        line_start: 27
        source_file: /src/raksha/src/ir/dot/dot_generator_config.h
    - fields:
      - name: operation_labeler
        type: "std::function<std::string(const Operation&,\n                            const
          absl::btree_set<std::string>&)>"
      item_type: struct
      name: DotGeneratorConfig
      pos:
        line_end: 38
        line_start: 27
        source_file: /src/raksha/src/ir/dot/dot_generator_config.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/ir/dot/dot_generator.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  source_file: /src/raksha/src/ir/datalog/attribute_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::datalog::IsOperationFact::IsOperationFact
  - '&operator=(const IsOperationFact &)'
  - raksha::ir::datalog::IsOperationFact::IsOperationFact
  - '&operator=(IsOperationFact &&)'
  - ~IsOperationFact()
  - raksha::ir::datalog::IsOperationFact::relation_name
  - raksha::ir::datalog::IsOperationFact::GetRelationName
  - raksha::ir::datalog::IsOperationFact::IsOperationFact
  - '&operator=(const IsOperationFact &)'
  - raksha::ir::datalog::IsOperationFact::IsOperationFact
  - '&operator=(IsOperationFact &&)'
  - ~IsOperationFact()
  - raksha::ir::datalog::IsOperationFact::relation_name
  - raksha::ir::datalog::IsOperationFact::GetRelationName
  source_file: /src/raksha/src/ir/datalog/operation.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::datalog::Predicate::Predicate
  - '& name() const'
  - '& args() const'
  - raksha::ir::datalog::Predicate::sign
  - raksha::ir::datalog::Predicate::AbslHashValue
  - operator==(const Predicate& otherPredicate) const
  - operator<(const Predicate& otherPredicate) const
  - raksha::ir::datalog::Predicate::IsNumericOperator
  - raksha::ir::datalog::ArgumentType::kind
  - raksha::ir::datalog::ArgumentType::name
  - raksha::ir::datalog::ArgumentType::MakePrincipalType
  - raksha::ir::datalog::ArgumentType::MakeNumberType
  - raksha::ir::datalog::ArgumentType::MakeCustomType
  - raksha::ir::datalog::ArgumentType::AbslHashValue
  - operator==(const ArgumentType& otherType) const
  - operator!=(const ArgumentType& otherType) const
  - raksha::ir::datalog::ArgumentType::ArgumentType
  - raksha::ir::datalog::Argument::Argument
  - raksha::ir::datalog::Argument::argument_name
  - raksha::ir::datalog::Argument::argument_type
  - operator==(const Argument& otherArgument) const
  - raksha::ir::datalog::Argument::AbslHashValue
  - raksha::ir::datalog::RelationDeclaration::RelationDeclaration
  - raksha::ir::datalog::RelationDeclaration::relation_name
  - raksha::ir::datalog::RelationDeclaration::is_attribute
  - '& arguments() const'
  - operator==(const RelationDeclaration& otherDeclaration) const
  - raksha::ir::datalog::RelationDeclaration::AbslHashValue
  - raksha::ir::datalog::Rule::Rule
  - raksha::ir::datalog::Rule::Rule
  - '& lhs() const'
  - '& rhs() const'
  - operator==(const Rule& otherRule) const
  - raksha::ir::datalog::Program::Program
  - '& relation_declarations() const'
  - '& rules() const'
  - '& outputs() const'
  - operator==(const Program& otherProgram) const
  - raksha::ir::datalog::Predicate::Predicate
  - '& name() const'
  - '& args() const'
  - raksha::ir::datalog::Predicate::sign
  - raksha::ir::datalog::Predicate::AbslHashValue
  - operator==(const Predicate& otherPredicate) const
  - operator<(const Predicate& otherPredicate) const
  - raksha::ir::datalog::Predicate::IsNumericOperator
  - raksha::ir::datalog::ArgumentType::kind
  - raksha::ir::datalog::ArgumentType::name
  - raksha::ir::datalog::ArgumentType::MakePrincipalType
  - raksha::ir::datalog::ArgumentType::MakeNumberType
  - raksha::ir::datalog::ArgumentType::MakeCustomType
  - raksha::ir::datalog::ArgumentType::AbslHashValue
  - operator==(const ArgumentType& otherType) const
  - operator!=(const ArgumentType& otherType) const
  - raksha::ir::datalog::ArgumentType::ArgumentType
  - raksha::ir::datalog::Argument::Argument
  - raksha::ir::datalog::Argument::argument_name
  - raksha::ir::datalog::Argument::argument_type
  - operator==(const Argument& otherArgument) const
  - raksha::ir::datalog::Argument::AbslHashValue
  - raksha::ir::datalog::RelationDeclaration::RelationDeclaration
  - raksha::ir::datalog::RelationDeclaration::relation_name
  - raksha::ir::datalog::RelationDeclaration::is_attribute
  - '& arguments() const'
  - operator==(const RelationDeclaration& otherDeclaration) const
  - raksha::ir::datalog::RelationDeclaration::AbslHashValue
  - raksha::ir::datalog::Rule::Rule
  - raksha::ir::datalog::Rule::Rule
  - '& lhs() const'
  - '& rhs() const'
  - operator==(const Rule& otherRule) const
  - raksha::ir::datalog::Program::Program
  - '& relation_declarations() const'
  - '& rules() const'
  - '& outputs() const'
  - operator==(const Program& otherProgram) const
  source_file: /src/raksha/src/ir/datalog/program.h
  types:
    enum:
    - enumerators:
      - name: kNegated
      - name: kPositive
      item_type: enum
      name: Sign
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/raksha/src/ir/datalog/program.h
    - enumerators:
      - name: kNumber
      - name: kPrincipal
      - name: kCustom
      item_type: enum
      name: Kind
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/raksha/src/ir/datalog/program.h
    - enumerators:
      - name: kNegated
      - name: kPositive
      item_type: enum
      name: Sign
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/raksha/src/ir/datalog/program.h
    - enumerators:
      - name: kNumber
      - name: kPrincipal
      - name: kCustom
      item_type: enum
      name: Kind
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/raksha/src/ir/datalog/program.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~Value()
  - raksha::ir::datalog::Float::Float
  - raksha::ir::datalog::Float::ToDatalogString
  - raksha::ir::datalog::Number::Number
  - raksha::ir::datalog::Number::ToDatalogString
  - raksha::ir::datalog::Symbol::Symbol
  - raksha::ir::datalog::Symbol::ToDatalogString
  - raksha::ir::datalog::Record::Record
  - raksha::ir::datalog::Record::Record
  - raksha::ir::datalog::Record::ToDatalogString
  - raksha::ir::datalog::Adt::Adt
  - raksha::ir::datalog::Adt::ToDatalogString
  - ~Value()
  - raksha::ir::datalog::Float::Float
  - raksha::ir::datalog::Float::ToDatalogString
  - raksha::ir::datalog::Number::Number
  - raksha::ir::datalog::Number::ToDatalogString
  - raksha::ir::datalog::Symbol::Symbol
  - raksha::ir::datalog::Symbol::ToDatalogString
  - raksha::ir::datalog::Record::Record
  - raksha::ir::datalog::Record::Record
  - raksha::ir::datalog::Record::ToDatalogString
  - raksha::ir::datalog::Adt::Adt
  - raksha::ir::datalog::Adt::ToDatalogString
  source_file: /src/raksha/src/ir/datalog/value.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::RoundTripNumberThroughDatalogString
  - raksha::ir::datalog::RoundTripStringThroughDatalogString
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::PerformSimpleRecordTest
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::CheckNumberSymbolPairPair
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::NullBranch::NullBranch
  - raksha::ir::datalog::NumberBranch::NumberBranch
  - raksha::ir::datalog::AddBranch::AddBranch
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::RoundTripNumberThroughDatalogString
  - raksha::ir::datalog::RoundTripStringThroughDatalogString
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::PerformSimpleRecordTest
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::CheckNumberSymbolPairPair
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::NullBranch::NullBranch
  - raksha::ir::datalog::NumberBranch::NumberBranch
  - raksha::ir::datalog::AddBranch::AddBranch
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::RoundTripNumberThroughDatalogString
  - raksha::ir::datalog::RoundTripStringThroughDatalogString
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::PerformSimpleRecordTest
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::CheckNumberSymbolPairPair
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::NullBranch::NullBranch
  - raksha::ir::datalog::NumberBranch::NumberBranch
  - raksha::ir::datalog::AddBranch::AddBranch
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::RoundTripNumberThroughDatalogString
  - raksha::ir::datalog::RoundTripStringThroughDatalogString
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::PerformSimpleRecordTest
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::CheckNumberSymbolPairPair
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::NullBranch::NullBranch
  - raksha::ir::datalog::NumberBranch::NumberBranch
  - raksha::ir::datalog::AddBranch::AddBranch
  - raksha::ir::datalog::TEST_P
  source_file: /src/raksha/src/ir/datalog/value_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*num_list_ptr'
        type: NumList
      - name: expected_datalog
        type: absl::string_view
      item_type: struct
      name: NumListAndExpectedDatalog
      pos:
        line_end: 124
        line_start: 121
        source_file: /src/raksha/src/ir/datalog/value_test.cc
    - fields:
      - name: '*adt'
        type: ArithmeticAdt
      - name: expected_datalog
        type: absl::string_view
      item_type: struct
      name: AdtAndExpectedDatalog
      pos:
        line_end: 216
        line_start: 213
        source_file: /src/raksha/src/ir/datalog/value_test.cc
    - fields:
      - name: '*num_list_ptr'
        type: NumList
      - name: expected_datalog
        type: absl::string_view
      item_type: struct
      name: NumListAndExpectedDatalog
      pos:
        line_end: 124
        line_start: 121
        source_file: /src/raksha/src/ir/datalog/value_test.cc
    - fields:
      - name: '*adt'
        type: ArithmeticAdt
      - name: expected_datalog
        type: absl::string_view
      item_type: struct
      name: AdtAndExpectedDatalog
      pos:
        line_end: 216
        line_start: 213
        source_file: /src/raksha/src/ir/datalog/value_test.cc
    - fields:
      - name: '*num_list_ptr'
        type: NumList
      - name: expected_datalog
        type: absl::string_view
      item_type: struct
      name: NumListAndExpectedDatalog
      pos:
        line_end: 124
        line_start: 121
        source_file: /src/raksha/src/ir/datalog/value_test.cc
    - fields:
      - name: '*adt'
        type: ArithmeticAdt
      - name: expected_datalog
        type: absl::string_view
      item_type: struct
      name: AdtAndExpectedDatalog
      pos:
        line_end: 216
        line_start: 213
        source_file: /src/raksha/src/ir/datalog/value_test.cc
    - fields:
      - name: '*num_list_ptr'
        type: NumList
      - name: expected_datalog
        type: absl::string_view
      item_type: struct
      name: NumListAndExpectedDatalog
      pos:
        line_end: 124
        line_start: 121
        source_file: /src/raksha/src/ir/datalog/value_test.cc
    - fields:
      - name: '*adt'
        type: ArithmeticAdt
      - name: expected_datalog
        type: absl::string_view
      item_type: struct
      name: AdtAndExpectedDatalog
      pos:
        line_end: 216
        line_start: 213
        source_file: /src/raksha/src/ir/datalog/value_test.cc
    typedefs: []
    union: []
- function_names:
  - raksha::ir::datalog::InputRelationFact::InputRelationFact
  - raksha::ir::datalog::InputRelationFact::ToDatalogString
  - raksha::ir::datalog::InputRelationFact::ToDatalogFactsFileString
  - raksha::ir::datalog::InputRelationFact::InputRelationFact
  - raksha::ir::datalog::InputRelationFact::ToDatalogString
  - raksha::ir::datalog::InputRelationFact::ToDatalogFactsFileString
  source_file: /src/raksha/src/ir/datalog/input_relation_fact.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  source_file: /src/raksha/src/ir/datalog/hash_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  source_file: /src/raksha/src/ir/datalog/is_numeric_operator_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  source_file: /src/raksha/src/ir/datalog/argument_type_factory_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::datalog::Attribute::Attribute
  - raksha::ir::datalog::Attribute::String::String
  - raksha::ir::datalog::Attribute::String::String
  - raksha::ir::datalog::Attribute::Float::Float
  - raksha::ir::datalog::Attribute::Float::Float
  - raksha::ir::datalog::Attribute::Number::Number
  - raksha::ir::datalog::Attribute::Number::Number
  - raksha::ir::datalog::Attribute::Number::Number
  - raksha::ir::datalog::Attribute::Number::Number
  - raksha::ir::datalog::Attribute::Number::Number
  - raksha::ir::datalog::Attribute::Number::Number
  - raksha::ir::datalog::Attribute::Number::Number
  - raksha::ir::datalog::Attribute::Attribute
  - raksha::ir::datalog::Attribute::String::String
  - raksha::ir::datalog::Attribute::String::String
  - raksha::ir::datalog::Attribute::Float::Float
  - raksha::ir::datalog::Attribute::Float::Float
  - raksha::ir::datalog::Attribute::Number::Number
  - raksha::ir::datalog::Attribute::Number::Number
  - raksha::ir::datalog::Attribute::Number::Number
  - raksha::ir::datalog::Attribute::Number::Number
  - raksha::ir::datalog::Attribute::Number::Number
  - raksha::ir::datalog::Attribute::Number::Number
  - raksha::ir::datalog::Attribute::Number::Number
  source_file: /src/raksha/src/ir/datalog/attribute.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::TEST_P
  source_file: /src/raksha/src/ir/datalog/operation_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*is_operation_fact'
        type: IsOperationFact
      - name: expected_datalog
        type: absl::string_view
      item_type: struct
      name: IsOperationFactAndExpectedDatalog
      pos:
        line_end: 32
        line_start: 29
        source_file: /src/raksha/src/ir/datalog/operation_test.cc
    - fields:
      - name: '*is_operation_fact'
        type: IsOperationFact
      - name: expected_datalog
        type: absl::string_view
      item_type: struct
      name: IsOperationFactAndExpectedDatalog
      pos:
        line_end: 32
        line_start: 29
        source_file: /src/raksha/src/ir/datalog/operation_test.cc
    typedefs: []
    union: []
- function_names:
  - ~IsAccessPathFact()
  - raksha::ir::datalog::IsAccessPathFact::relation_name
  - raksha::ir::datalog::IsAccessPathFact::GetRelationName
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::UnitAdtBranch::UnitAdtBranch
  - ~OneOfEachFact()
  - raksha::ir::datalog::OneOfEachFact::relation_name
  - raksha::ir::datalog::OneOfEachFact::GetRelationName
  - raksha::ir::datalog::TEST
  - ~IsAccessPathFact()
  - raksha::ir::datalog::IsAccessPathFact::relation_name
  - raksha::ir::datalog::IsAccessPathFact::GetRelationName
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::TEST_P
  - raksha::ir::datalog::UnitAdtBranch::UnitAdtBranch
  - ~OneOfEachFact()
  - raksha::ir::datalog::OneOfEachFact::relation_name
  - raksha::ir::datalog::OneOfEachFact::GetRelationName
  - raksha::ir::datalog::TEST
  source_file: /src/raksha/src/ir/datalog/input_relation_fact_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  - raksha::ir::datalog::TEST
  source_file: /src/raksha/src/ir/datalog/predicate_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/ir/auth_logic/is_name_constant.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::auth_logic::SouffleEmitter::EmitProgram
  - '& GetRelationsToNotDeclare()'
  - raksha::ir::auth_logic::SouffleEmitter::SouffleEmitter
  - raksha::ir::auth_logic::SouffleEmitter::PredToDeclaration
  - raksha::ir::auth_logic::SouffleEmitter::EmitPredicate
  - raksha::ir::auth_logic::SouffleEmitter::EmitAssertion
  - raksha::ir::auth_logic::SouffleEmitter::EmitProgramBody
  - raksha::ir::auth_logic::SouffleEmitter::EmitOutputs
  - raksha::ir::auth_logic::SouffleEmitter::EmitDeclaration
  - raksha::ir::auth_logic::SouffleEmitter::EmitArguments
  - raksha::ir::auth_logic::SouffleEmitter::EmitRelationDeclarations
  - raksha::ir::auth_logic::SouffleEmitter::EmitTypeDeclarations
  - raksha::ir::auth_logic::SouffleEmitter::EmitProgram
  - '& GetRelationsToNotDeclare()'
  - raksha::ir::auth_logic::SouffleEmitter::SouffleEmitter
  - raksha::ir::auth_logic::SouffleEmitter::PredToDeclaration
  - raksha::ir::auth_logic::SouffleEmitter::EmitPredicate
  - raksha::ir::auth_logic::SouffleEmitter::EmitAssertion
  - raksha::ir::auth_logic::SouffleEmitter::EmitProgramBody
  - raksha::ir::auth_logic::SouffleEmitter::EmitOutputs
  - raksha::ir::auth_logic::SouffleEmitter::EmitDeclaration
  - raksha::ir::auth_logic::SouffleEmitter::EmitArguments
  - raksha::ir::auth_logic::SouffleEmitter::EmitRelationDeclarations
  - raksha::ir::auth_logic::SouffleEmitter::EmitTypeDeclarations
  source_file: /src/raksha/src/ir/auth_logic/souffle_emitter.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~AuthLogicAstVisitor()
  - ~AuthLogicAstVisitor()
  source_file: /src/raksha/src/ir/auth_logic/auth_logic_ast_visitor.h
  types:
    enum:
    - enumerators:
      - name: Mutable
        value: 'false'
      - name: Immutable
        value: 'true'
      item_type: enum
      name: AstNodeMutability
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/raksha/src/ir/auth_logic/auth_logic_ast_visitor.h
    - enumerators:
      - name: Mutable
        value: 'false'
      - name: Immutable
        value: 'true'
      item_type: enum
      name: AstNodeMutability
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/raksha/src/ir/auth_logic/auth_logic_ast_visitor.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/ir/auth_logic/souffle_emitter_build_stub.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/ir/auth_logic/declaration_environment.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::auth_logic::Principal::Principal
  - '& name() const'
  - raksha::ir::auth_logic::Principal::Accept
  - raksha::ir::auth_logic::Principal::Accept
  - operator==(const Principal& rhs) const
  - operator!=(const Principal& rhs) const
  - raksha::ir::auth_logic::Attribute::Attribute
  - '& principal() const'
  - '& predicate() const'
  - raksha::ir::auth_logic::Attribute::Accept
  - raksha::ir::auth_logic::Attribute::Accept
  - operator==(const Attribute& rhs) const
  - operator!=(const Attribute& rhs) const
  - raksha::ir::auth_logic::CanActAs::CanActAs
  - '& left_principal() const'
  - '& right_principal() const'
  - raksha::ir::auth_logic::CanActAs::Accept
  - raksha::ir::auth_logic::CanActAs::Accept
  - operator==(const CanActAs& rhs) const
  - operator!=(const CanActAs& rhs) const
  - raksha::ir::auth_logic::BaseFact::BaseFact
  - '& GetValue() const'
  - raksha::ir::auth_logic::BaseFact::Accept
  - raksha::ir::auth_logic::BaseFact::Accept
  - operator==(const BaseFact& rhs) const
  - operator!=(const BaseFact& rhs) const
  - raksha::ir::auth_logic::Fact::Fact
  - '& delegation_chain() const'
  - '& base_fact() const'
  - raksha::ir::auth_logic::Fact::Accept
  - raksha::ir::auth_logic::Fact::Accept
  - operator==(const Fact& rhs) const
  - operator!=(const Fact& rhs) const
  - raksha::ir::auth_logic::ConditionalAssertion::ConditionalAssertion
  - '& lhs() const'
  - '& rhs() const'
  - raksha::ir::auth_logic::ConditionalAssertion::Accept
  - raksha::ir::auth_logic::ConditionalAssertion::Accept
  - operator==(const ConditionalAssertion& rhs) const
  - operator!=(const ConditionalAssertion& rhs) const
  - raksha::ir::auth_logic::Assertion::Assertion
  - '& GetValue() const'
  - raksha::ir::auth_logic::Assertion::Accept
  - raksha::ir::auth_logic::Assertion::Accept
  - operator==(const Assertion& rhs) const
  - operator!=(const Assertion& rhs) const
  - raksha::ir::auth_logic::SaysAssertion::SaysAssertion
  - '& principal() const'
  - '& assertions() const'
  - raksha::ir::auth_logic::SaysAssertion::Accept
  - raksha::ir::auth_logic::SaysAssertion::Accept
  - operator==(const SaysAssertion& rhs) const
  - operator!=(const SaysAssertion& rhs) const
  - raksha::ir::auth_logic::Query::Query
  - '& name() const'
  - '& principal() const'
  - '& fact() const'
  - raksha::ir::auth_logic::Query::Accept
  - raksha::ir::auth_logic::Query::Accept
  - operator==(const Query& rhs) const
  - operator!=(const Query& rhs) const
  - raksha::ir::auth_logic::Program::Program
  - "& relation_declarations()\n      const"
  - '& says_assertions() const'
  - '& queries() const'
  - raksha::ir::auth_logic::Program::Accept
  - raksha::ir::auth_logic::Program::Accept
  - operator==(const Program& rhs) const
  - operator!=(const Program& rhs) const
  - raksha::ir::auth_logic::Principal::Principal
  - '& name() const'
  - raksha::ir::auth_logic::Principal::Accept
  - raksha::ir::auth_logic::Principal::Accept
  - operator==(const Principal& rhs) const
  - operator!=(const Principal& rhs) const
  - raksha::ir::auth_logic::Attribute::Attribute
  - '& principal() const'
  - '& predicate() const'
  - raksha::ir::auth_logic::Attribute::Accept
  - raksha::ir::auth_logic::Attribute::Accept
  - operator==(const Attribute& rhs) const
  - operator!=(const Attribute& rhs) const
  - raksha::ir::auth_logic::CanActAs::CanActAs
  - '& left_principal() const'
  - '& right_principal() const'
  - raksha::ir::auth_logic::CanActAs::Accept
  - raksha::ir::auth_logic::CanActAs::Accept
  - operator==(const CanActAs& rhs) const
  - operator!=(const CanActAs& rhs) const
  - raksha::ir::auth_logic::BaseFact::BaseFact
  - '& GetValue() const'
  - raksha::ir::auth_logic::BaseFact::Accept
  - raksha::ir::auth_logic::BaseFact::Accept
  - operator==(const BaseFact& rhs) const
  - operator!=(const BaseFact& rhs) const
  - raksha::ir::auth_logic::Fact::Fact
  - '& delegation_chain() const'
  - '& base_fact() const'
  - raksha::ir::auth_logic::Fact::Accept
  - raksha::ir::auth_logic::Fact::Accept
  - operator==(const Fact& rhs) const
  - operator!=(const Fact& rhs) const
  - raksha::ir::auth_logic::ConditionalAssertion::ConditionalAssertion
  - '& lhs() const'
  - '& rhs() const'
  - raksha::ir::auth_logic::ConditionalAssertion::Accept
  - raksha::ir::auth_logic::ConditionalAssertion::Accept
  - operator==(const ConditionalAssertion& rhs) const
  - operator!=(const ConditionalAssertion& rhs) const
  - raksha::ir::auth_logic::Assertion::Assertion
  - '& GetValue() const'
  - raksha::ir::auth_logic::Assertion::Accept
  - raksha::ir::auth_logic::Assertion::Accept
  - operator==(const Assertion& rhs) const
  - operator!=(const Assertion& rhs) const
  - raksha::ir::auth_logic::SaysAssertion::SaysAssertion
  - '& principal() const'
  - '& assertions() const'
  - raksha::ir::auth_logic::SaysAssertion::Accept
  - raksha::ir::auth_logic::SaysAssertion::Accept
  - operator==(const SaysAssertion& rhs) const
  - operator!=(const SaysAssertion& rhs) const
  - raksha::ir::auth_logic::Query::Query
  - '& name() const'
  - '& principal() const'
  - '& fact() const'
  - raksha::ir::auth_logic::Query::Accept
  - raksha::ir::auth_logic::Query::Accept
  - operator==(const Query& rhs) const
  - operator!=(const Query& rhs) const
  - raksha::ir::auth_logic::Program::Program
  - "& relation_declarations()\n      const"
  - '& says_assertions() const'
  - '& queries() const'
  - raksha::ir::auth_logic::Program::Accept
  - raksha::ir::auth_logic::Program::Accept
  - operator==(const Program& rhs) const
  - operator!=(const Program& rhs) const
  source_file: /src/raksha/src/ir/auth_logic/ast.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::auth_logic::PrincipalNameCollectorVisitor::GetDefaultValue
  - raksha::ir::auth_logic::PrincipalNameCollectorVisitor::CombineResult
  - raksha::ir::auth_logic::PrincipalNameCollectorVisitor::PreVisit
  - raksha::ir::auth_logic::BuildTestProgram1
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TraversalOrderVisitor::TraversalOrderVisitor
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - '& nodes() const'
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::PrincipalNameCollectorVisitor::GetDefaultValue
  - raksha::ir::auth_logic::PrincipalNameCollectorVisitor::CombineResult
  - raksha::ir::auth_logic::PrincipalNameCollectorVisitor::PreVisit
  - raksha::ir::auth_logic::BuildTestProgram1
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TraversalOrderVisitor::TraversalOrderVisitor
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - '& nodes() const'
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::PrincipalNameCollectorVisitor::GetDefaultValue
  - raksha::ir::auth_logic::PrincipalNameCollectorVisitor::CombineResult
  - raksha::ir::auth_logic::PrincipalNameCollectorVisitor::PreVisit
  - raksha::ir::auth_logic::BuildTestProgram1
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TraversalOrderVisitor::TraversalOrderVisitor
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - '& nodes() const'
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::PrincipalNameCollectorVisitor::GetDefaultValue
  - raksha::ir::auth_logic::PrincipalNameCollectorVisitor::CombineResult
  - raksha::ir::auth_logic::PrincipalNameCollectorVisitor::PreVisit
  - raksha::ir::auth_logic::BuildTestProgram1
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TraversalOrderVisitor::TraversalOrderVisitor
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PreVisit
  - raksha::ir::auth_logic::TraversalOrderVisitor::PostVisit
  - '& nodes() const'
  - raksha::ir::auth_logic::TEST
  source_file: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
  types:
    enum:
    - enumerators:
      - name: kPre
        value: '0x1'
      - name: kPost
        value: '0x2'
      - name: kBoth
        value: '0x3'
      item_type: enum
      name: TraversalType
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    - enumerators:
      - name: kPre
        value: '0x1'
      - name: kPost
        value: '0x2'
      - name: kBoth
        value: '0x3'
      item_type: enum
      name: TraversalType
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    - enumerators:
      - name: kPre
        value: '0x1'
      - name: kPost
        value: '0x2'
      - name: kBoth
        value: '0x3'
      item_type: enum
      name: TraversalType
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    - enumerators:
      - name: kPre
        value: '0x1'
      - name: kPost
        value: '0x2'
      - name: kBoth
        value: '0x3'
      item_type: enum
      name: TraversalType
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor_test.cc
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::auth_logic::BuildTestProgram1
  - raksha::ir::auth_logic::BuildTestProgram1Expected
  - raksha::ir::auth_logic::BuildTestProgram2
  - raksha::ir::auth_logic::BuildTestProgram2Expected
  - raksha::ir::auth_logic::BuildTestProgram3
  - raksha::ir::auth_logic::BuildTestProgram3Expected
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::BuildTestProgram1
  - raksha::ir::auth_logic::BuildTestProgram1Expected
  - raksha::ir::auth_logic::BuildTestProgram2
  - raksha::ir::auth_logic::BuildTestProgram2Expected
  - raksha::ir::auth_logic::BuildTestProgram3
  - raksha::ir::auth_logic::BuildTestProgram3Expected
  - raksha::ir::auth_logic::TEST_P
  source_file: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: input_program
        type: Program
      - name: expected_program
        type: Program
      item_type: struct
      name: ProgramEquivalenceTestData
      pos:
        line_end: 282
        line_start: 279
        source_file: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc
    - fields:
      - name: input_program
        type: Program
      - name: expected_program
        type: Program
      item_type: struct
      name: ProgramEquivalenceTestData
      pos:
        line_end: 282
        line_start: 279
        source_file: /src/raksha/src/ir/auth_logic/universe_relation_insertion_test.cc
    typedefs: []
    union: []
- function_names:
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  source_file: /src/raksha/src/ir/auth_logic/is_name_constant_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  source_file: /src/raksha/src/ir/auth_logic/type_environment_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::TEST_P
  source_file: /src/raksha/src/ir/auth_logic/ast_equality_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
  - raksha::ir::auth_logic::ConstructPrincipal
  - raksha::ir::auth_logic::ConstructPredicate
  - raksha::ir::auth_logic::ConstructVerbphrase
  - raksha::ir::auth_logic::ConstructFlatFact
  - raksha::ir::auth_logic::ConstructRvalue
  - raksha::ir::auth_logic::ConstructFact
  - raksha::ir::auth_logic::ConstructArgumentType
  - raksha::ir::auth_logic::ConstructRelationDeclaration
  - raksha::ir::auth_logic::ConstructQuery
  - raksha::ir::auth_logic::ConstructAssertion
  - raksha::ir::auth_logic::ConstructSaysAssertion
  - raksha::ir::auth_logic::ConstructProgram
  - raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
  - raksha::ir::auth_logic::ConstructPrincipal
  - raksha::ir::auth_logic::ConstructPredicate
  - raksha::ir::auth_logic::ConstructVerbphrase
  - raksha::ir::auth_logic::ConstructFlatFact
  - raksha::ir::auth_logic::ConstructRvalue
  - raksha::ir::auth_logic::ConstructFact
  - raksha::ir::auth_logic::ConstructArgumentType
  - raksha::ir::auth_logic::ConstructRelationDeclaration
  - raksha::ir::auth_logic::ConstructQuery
  - raksha::ir::auth_logic::ConstructAssertion
  - raksha::ir::auth_logic::ConstructSaysAssertion
  - raksha::ir::auth_logic::ConstructProgram
  - raksha::ir::auth_logic::ParseProgram
  - raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
  - raksha::ir::auth_logic::ConstructPrincipal
  - raksha::ir::auth_logic::ConstructPredicate
  - raksha::ir::auth_logic::ConstructVerbphrase
  - raksha::ir::auth_logic::ConstructFlatFact
  - raksha::ir::auth_logic::ConstructRvalue
  - raksha::ir::auth_logic::ConstructFact
  - raksha::ir::auth_logic::ConstructArgumentType
  - raksha::ir::auth_logic::ConstructRelationDeclaration
  - raksha::ir::auth_logic::ConstructQuery
  - raksha::ir::auth_logic::ConstructAssertion
  - raksha::ir::auth_logic::ConstructSaysAssertion
  - raksha::ir::auth_logic::ConstructProgram
  - raksha::ir::auth_logic::SanitizeMultilineStringForPredicateArgument
  - raksha::ir::auth_logic::ConstructPrincipal
  - raksha::ir::auth_logic::ConstructPredicate
  - raksha::ir::auth_logic::ConstructVerbphrase
  - raksha::ir::auth_logic::ConstructFlatFact
  - raksha::ir::auth_logic::ConstructRvalue
  - raksha::ir::auth_logic::ConstructFact
  - raksha::ir::auth_logic::ConstructArgumentType
  - raksha::ir::auth_logic::ConstructRelationDeclaration
  - raksha::ir::auth_logic::ConstructQuery
  - raksha::ir::auth_logic::ConstructAssertion
  - raksha::ir::auth_logic::ConstructSaysAssertion
  - raksha::ir::auth_logic::ConstructProgram
  - raksha::ir::auth_logic::ParseProgram
  source_file: /src/raksha/src/ir/auth_logic/ast_construction.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::auth_logic::TypeToUniverseName
  - raksha::ir::auth_logic::MakeUniverseMembershipFact
  - raksha::ir::auth_logic::TypeToUniverseDeclaration
  - raksha::ir::auth_logic::GetUniverseDefiningFacts
  - raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::GetDefaultValue
  - raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::CombineResult
  - raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::Visit
  - raksha::ir::auth_logic::GetUniverseDeclarations
  - raksha::ir::auth_logic::GroundingConditionTransformer::GroundingConditionTransformer
  - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
  - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
  - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
  - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
  - raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
  - raksha::ir::auth_logic::GroundingConditionTransformer::GetDefaultValue
  - raksha::ir::auth_logic::GroundingConditionTransformer::CombineResult
  - raksha::ir::auth_logic::GroundingConditionTransformer::PreVisit
  - raksha::ir::auth_logic::GroundingConditionTransformer::Visit
  - raksha::ir::auth_logic::TypeToUniverseName
  - raksha::ir::auth_logic::MakeUniverseMembershipFact
  - raksha::ir::auth_logic::TypeToUniverseDeclaration
  - raksha::ir::auth_logic::GetUniverseDefiningFacts
  - raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::GetDefaultValue
  - raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::CombineResult
  - raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::Visit
  - raksha::ir::auth_logic::GetUniverseDeclarations
  - raksha::ir::auth_logic::GroundingConditionTransformer::GroundingConditionTransformer
  - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
  - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
  - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
  - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
  - raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
  - raksha::ir::auth_logic::GroundingConditionTransformer::GetDefaultValue
  - raksha::ir::auth_logic::GroundingConditionTransformer::CombineResult
  - raksha::ir::auth_logic::GroundingConditionTransformer::PreVisit
  - raksha::ir::auth_logic::GroundingConditionTransformer::Visit
  - raksha::ir::auth_logic::InsertUniverseRelations
  - raksha::ir::auth_logic::TypeToUniverseName
  - raksha::ir::auth_logic::MakeUniverseMembershipFact
  - raksha::ir::auth_logic::TypeToUniverseDeclaration
  - raksha::ir::auth_logic::GetUniverseDefiningFacts
  - raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::GetDefaultValue
  - raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::CombineResult
  - raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::Visit
  - raksha::ir::auth_logic::GetUniverseDeclarations
  - raksha::ir::auth_logic::GroundingConditionTransformer::GroundingConditionTransformer
  - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
  - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
  - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
  - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
  - raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
  - raksha::ir::auth_logic::GroundingConditionTransformer::GetDefaultValue
  - raksha::ir::auth_logic::GroundingConditionTransformer::CombineResult
  - raksha::ir::auth_logic::GroundingConditionTransformer::PreVisit
  - raksha::ir::auth_logic::GroundingConditionTransformer::Visit
  - raksha::ir::auth_logic::TypeToUniverseName
  - raksha::ir::auth_logic::MakeUniverseMembershipFact
  - raksha::ir::auth_logic::TypeToUniverseDeclaration
  - raksha::ir::auth_logic::GetUniverseDefiningFacts
  - raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::GetDefaultValue
  - raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::CombineResult
  - raksha::ir::auth_logic::UniverseDeclarationGenerationVisitor::Visit
  - raksha::ir::auth_logic::GetUniverseDeclarations
  - raksha::ir::auth_logic::GroundingConditionTransformer::GroundingConditionTransformer
  - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
  - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
  - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
  - raksha::ir::auth_logic::GroundingConditionTransformer::AddUniverseConditions
  - raksha::ir::auth_logic::GroundingConditionTransformer::GetUniverseConditions
  - raksha::ir::auth_logic::GroundingConditionTransformer::GetDefaultValue
  - raksha::ir::auth_logic::GroundingConditionTransformer::CombineResult
  - raksha::ir::auth_logic::GroundingConditionTransformer::PreVisit
  - raksha::ir::auth_logic::GroundingConditionTransformer::Visit
  - raksha::ir::auth_logic::InsertUniverseRelations
  source_file: /src/raksha/src/ir/auth_logic/universe_relation_insertion.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Get
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Get
  - ~AuthLogicAstTraversingVisitor()
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::FoldAccept
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Get
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Get
  - ~AuthLogicAstTraversingVisitor()
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::GetDefaultValue
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::CombineResult
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PreVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::PostVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::Visit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::VariantVisit
  - raksha::ir::auth_logic::AuthLogicAstTraversingVisitor::FoldAccept
  source_file: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: DefaultValueGetter
      pos:
        line_end: 46
        line_start: 42
        source_file: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    - fields: []
      item_type: struct
      name: "DefaultValueGetter<\n      ValueType, std::enable_if_t<std::is_default_constructible_v<ValueType>>>"
      pos:
        line_end: 52
        line_start: 49
        source_file: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    - fields: []
      item_type: struct
      name: DefaultValueGetter
      pos:
        line_end: 46
        line_start: 42
        source_file: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    - fields: []
      item_type: struct
      name: "DefaultValueGetter<\n      ValueType, std::enable_if_t<std::is_default_constructible_v<ValueType>>>"
      pos:
        line_end: 52
        line_start: 49
        source_file: /src/raksha/src/ir/auth_logic/auth_logic_ast_traversing_visitor.h
    typedefs: []
    union: []
- function_names:
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::TEST_P
  source_file: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: input_text
        type: std::string
      - name: relation_name
        type: std::string
      - name: is_attribute
        type: bool
      - name: arguments
        type: std::vector<std::string>
      item_type: struct
      name: RelationDeclarationTestData
      pos:
        line_end: 40
        line_start: 35
        source_file: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc
    - fields:
      - name: input_text
        type: std::string
      - name: relation_name
        type: std::string
      - name: is_attribute
        type: bool
      - name: arguments
        type: std::vector<std::string>
      item_type: struct
      name: RelationDeclarationTestData
      pos:
        line_end: 40
        line_start: 35
        source_file: /src/raksha/src/ir/auth_logic/ast_construction_relation_declaration_test.cc
    typedefs: []
    union: []
- function_names:
  - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::TypeEnvironmentGenerationVisitor
  - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::literal_type_map
  - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
  - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::PreVisit
  - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::Visit
  - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::TypeEnvironmentGenerationVisitor
  - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::literal_type_map
  - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
  - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::PreVisit
  - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::Visit
  - raksha::ir::auth_logic::TypeEnvironment::TypeEnvironment
  - raksha::ir::auth_logic::TypeEnvironment::GetTypingOrFatal
  - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::TypeEnvironmentGenerationVisitor
  - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::literal_type_map
  - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
  - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::PreVisit
  - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::Visit
  - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::TypeEnvironmentGenerationVisitor
  - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::literal_type_map
  - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::AddTyping
  - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::PreVisit
  - raksha::ir::auth_logic::TypeEnvironmentGenerationVisitor::Visit
  - raksha::ir::auth_logic::TypeEnvironment::TypeEnvironment
  - raksha::ir::auth_logic::TypeEnvironment::GetTypingOrFatal
  source_file: /src/raksha/src/ir/auth_logic/type_environment.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/ir/auth_logic/ast_string.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::auth_logic::ToString
  - raksha::ir::auth_logic::ToString
  - raksha::ir::auth_logic::ToString
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::ToString
  - raksha::ir::auth_logic::ToString
  - raksha::ir::auth_logic::ToString
  - raksha::ir::auth_logic::TEST_P
  source_file: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: input_text
        type: std::string
      - name: query_name
        type: std::string
      - name: principal
        type: std::string
      - name: fact
        type: std::string
      item_type: struct
      name: QueryTestData
      pos:
        line_end: 39
        line_start: 34
        source_file: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc
    - fields:
      - name: input_text
        type: std::string
      - name: query_name
        type: std::string
      - name: principal
        type: std::string
      - name: fact
        type: std::string
      item_type: struct
      name: QueryTestData
      pos:
        line_end: 39
        line_start: 34
        source_file: /src/raksha/src/ir/auth_logic/ast_construction_query_test.cc
    typedefs: []
    union: []
- function_names:
  - raksha::ir::auth_logic::BuildSingleAssertionProgram
  - raksha::ir::auth_logic::BuildSingleSaysAssertion
  - raksha::ir::auth_logic::BuildPredicateTestProgram
  - raksha::ir::auth_logic::BuildRelationDeclarationProgram
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::BuildCanSayProgram
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::BuildFloatCanSayProgram
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::BuildSingleAssertionProgram
  - raksha::ir::auth_logic::BuildSingleSaysAssertion
  - raksha::ir::auth_logic::BuildPredicateTestProgram
  - raksha::ir::auth_logic::BuildRelationDeclarationProgram
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::BuildCanSayProgram
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::BuildFloatCanSayProgram
  - raksha::ir::auth_logic::TEST
  source_file: /src/raksha/src/ir/auth_logic/souffle_emitter_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::auth_logic::ToStrings
  - raksha::ir::auth_logic::ToStrings
  - raksha::ir::auth_logic::ToString
  - raksha::ir::auth_logic::ToStrings
  - raksha::ir::auth_logic::ToStrings
  - raksha::ir::auth_logic::ToString
  source_file: /src/raksha/src/ir/auth_logic/ast_string.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::auth_logic::LoweringToDatalogPass::Lower
  - raksha::ir::auth_logic::LoweringToDatalogPass::LoweringToDatalogPass
  - raksha::ir::auth_logic::LoweringToDatalogPass::FreshVar
  - raksha::ir::auth_logic::LoweringToDatalogPass::Lower
  - raksha::ir::auth_logic::LoweringToDatalogPass::LoweringToDatalogPass
  - raksha::ir::auth_logic::LoweringToDatalogPass::FreshVar
  source_file: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::auth_logic::PushOntoPredicate
  - raksha::ir::auth_logic::PushPrincipal
  - raksha::ir::auth_logic::AttributeToDLIR
  - raksha::ir::auth_logic::CanActAsToDLIR
  - raksha::ir::auth_logic::PushOntoPredicate
  - raksha::ir::auth_logic::PushPrincipal
  - raksha::ir::auth_logic::AttributeToDLIR
  - raksha::ir::auth_logic::CanActAsToDLIR
  - raksha::ir::auth_logic::LoweringToDatalogPass::UpdateCanSayDepth
  - raksha::ir::auth_logic::LoweringToDatalogPass::SpokenAttributeToDLIR
  - raksha::ir::auth_logic::LoweringToDatalogPass::SpokenCanActAsToDLIR
  - raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIRInner
  - raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIRInner
  - raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIRInner
  - raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIR
  - raksha::ir::auth_logic::LoweringToDatalogPass::FactToDLIR
  - raksha::ir::auth_logic::LoweringToDatalogPass::GenerateDLIRAssertions
  - raksha::ir::auth_logic::LoweringToDatalogPass::GenerateDLIRAssertions
  - raksha::ir::auth_logic::LoweringToDatalogPass::SingleSaysAssertionToDLIR
  - raksha::ir::auth_logic::LoweringToDatalogPass::SaysAssertionToDLIR
  - raksha::ir::auth_logic::LoweringToDatalogPass::SaysAssertionsToDLIR
  - raksha::ir::auth_logic::LoweringToDatalogPass::QueriesToDLIR
  - raksha::ir::auth_logic::LoweringToDatalogPass::TransformAttributeDeclarations
  - raksha::ir::auth_logic::LoweringToDatalogPass::GetCanSayDeclarations
  - raksha::ir::auth_logic::LoweringToDatalogPass::GetSaysExtendRelationDeclarations
  - raksha::ir::auth_logic::LoweringToDatalogPass::RelationDeclarationToDLIR
  - raksha::ir::auth_logic::LoweringToDatalogPass::QueryRelationDeclarationToDLIR
  - raksha::ir::auth_logic::LoweringToDatalogPass::ProgToDLIR
  - raksha::ir::auth_logic::PushOntoPredicate
  - raksha::ir::auth_logic::PushPrincipal
  - raksha::ir::auth_logic::AttributeToDLIR
  - raksha::ir::auth_logic::CanActAsToDLIR
  - raksha::ir::auth_logic::PushOntoPredicate
  - raksha::ir::auth_logic::PushPrincipal
  - raksha::ir::auth_logic::AttributeToDLIR
  - raksha::ir::auth_logic::CanActAsToDLIR
  - raksha::ir::auth_logic::LoweringToDatalogPass::UpdateCanSayDepth
  - raksha::ir::auth_logic::LoweringToDatalogPass::SpokenAttributeToDLIR
  - raksha::ir::auth_logic::LoweringToDatalogPass::SpokenCanActAsToDLIR
  - raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIRInner
  - raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIRInner
  - raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIRInner
  - raksha::ir::auth_logic::LoweringToDatalogPass::BaseFactToDLIR
  - raksha::ir::auth_logic::LoweringToDatalogPass::FactToDLIR
  - raksha::ir::auth_logic::LoweringToDatalogPass::GenerateDLIRAssertions
  - raksha::ir::auth_logic::LoweringToDatalogPass::GenerateDLIRAssertions
  - raksha::ir::auth_logic::LoweringToDatalogPass::SingleSaysAssertionToDLIR
  - raksha::ir::auth_logic::LoweringToDatalogPass::SaysAssertionToDLIR
  - raksha::ir::auth_logic::LoweringToDatalogPass::SaysAssertionsToDLIR
  - raksha::ir::auth_logic::LoweringToDatalogPass::QueriesToDLIR
  - raksha::ir::auth_logic::LoweringToDatalogPass::TransformAttributeDeclarations
  - raksha::ir::auth_logic::LoweringToDatalogPass::GetCanSayDeclarations
  - raksha::ir::auth_logic::LoweringToDatalogPass::GetSaysExtendRelationDeclarations
  - raksha::ir::auth_logic::LoweringToDatalogPass::RelationDeclarationToDLIR
  - raksha::ir::auth_logic::LoweringToDatalogPass::QueryRelationDeclarationToDLIR
  - raksha::ir::auth_logic::LoweringToDatalogPass::ProgToDLIR
  source_file: /src/raksha/src/ir/auth_logic/lowering_ast_datalog.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::RelationDeclarationEnvironmentVisitor
  - raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::decl_map
  - raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::AddDeclaration
  - raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::Visit
  - raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::RelationDeclarationEnvironmentVisitor
  - raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::decl_map
  - raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::AddDeclaration
  - raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::Visit
  - raksha::ir::auth_logic::DeclarationEnvironment::DeclarationEnvironment
  - raksha::ir::auth_logic::DeclarationEnvironment::GetDeclarationOrFatal
  - raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::RelationDeclarationEnvironmentVisitor
  - raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::decl_map
  - raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::AddDeclaration
  - raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::Visit
  - raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::RelationDeclarationEnvironmentVisitor
  - raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::decl_map
  - raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::AddDeclaration
  - raksha::ir::auth_logic::RelationDeclarationEnvironmentVisitor::Visit
  - raksha::ir::auth_logic::DeclarationEnvironment::DeclarationEnvironment
  - raksha::ir::auth_logic::DeclarationEnvironment::GetDeclarationOrFatal
  source_file: /src/raksha/src/ir/auth_logic/declaration_environment.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  source_file: /src/raksha/src/ir/auth_logic/ast_string_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - "&\n  literal_type_map() const"
  - "&\n  literal_type_map() const"
  source_file: /src/raksha/src/ir/auth_logic/type_environment.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/ir/auth_logic/ast_construction.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/ir/auth_logic/ast_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::auth_logic::TEST_P
  - raksha::ir::auth_logic::TEST_P
  source_file: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: input_text
        type: std::string
      - name: principal
        type: std::string
      - name: assertions
        type: std::vector<std::string>
      item_type: struct
      name: SaysAssertionTestData
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc
    - fields:
      - name: input_text
        type: std::string
      - name: principal
        type: std::string
      - name: assertions
        type: std::vector<std::string>
      item_type: struct
      name: SaysAssertionTestData
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/raksha/src/ir/auth_logic/ast_construction_says_assertion_test.cc
    typedefs: []
    union: []
- function_names:
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  - raksha::ir::auth_logic::TEST
  source_file: /src/raksha/src/ir/auth_logic/declaration_environment_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/ir/auth_logic/universe_relation_insertion.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ir::auth_logic::IsNameConstant
  - raksha::ir::auth_logic::IsNameConstant
  source_file: /src/raksha/src/ir/auth_logic/is_name_constant.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::parser::ir::CheckAnyCast
  - raksha::parser::ir::IrVisitor::IrVisitor
  - raksha::parser::ir::IrVisitor::visitStringLiteral
  - raksha::parser::ir::IrVisitor::visitAnyValue
  - raksha::parser::ir::IrVisitor::visitNamedTempValue
  - raksha::parser::ir::IrVisitor::visitResult
  - raksha::parser::ir::IrVisitor::visitArgumentList
  - raksha::parser::ir::IrVisitor::visitFloatAttribute
  - raksha::parser::ir::IrVisitor::visitNumAttribute
  - raksha::parser::ir::IrVisitor::visitStringAttribute
  - raksha::parser::ir::IrVisitor::visitAttribute
  - raksha::parser::ir::IrVisitor::visitAttributeList
  - raksha::parser::ir::IrVisitor::visitOperation
  - raksha::parser::ir::IrVisitor::visitBlock
  - raksha::parser::ir::IrVisitor::visitModule
  - raksha::parser::ir::IrVisitor::visitIrProgram
  - raksha::parser::ir::IrVisitor::TakeResult
  - "& MaybeRegisterOperator(absl::string_view operator_name,\n                                        size_t
    num_results)"
  - raksha::parser::ir::IrVisitor::VisitContextOrDefaultIfNull
  - raksha::parser::ir::CheckAnyCast
  - raksha::parser::ir::IrVisitor::IrVisitor
  - raksha::parser::ir::IrVisitor::visitStringLiteral
  - raksha::parser::ir::IrVisitor::visitAnyValue
  - raksha::parser::ir::IrVisitor::visitNamedTempValue
  - raksha::parser::ir::IrVisitor::visitResult
  - raksha::parser::ir::IrVisitor::visitArgumentList
  - raksha::parser::ir::IrVisitor::visitFloatAttribute
  - raksha::parser::ir::IrVisitor::visitNumAttribute
  - raksha::parser::ir::IrVisitor::visitStringAttribute
  - raksha::parser::ir::IrVisitor::visitAttribute
  - raksha::parser::ir::IrVisitor::visitAttributeList
  - raksha::parser::ir::IrVisitor::visitOperation
  - raksha::parser::ir::IrVisitor::visitBlock
  - raksha::parser::ir::IrVisitor::visitModule
  - raksha::parser::ir::IrVisitor::visitIrProgram
  - raksha::parser::ir::IrVisitor::TakeResult
  - "& MaybeRegisterOperator(absl::string_view operator_name,\n                                        size_t
    num_results)"
  - raksha::parser::ir::IrVisitor::VisitContextOrDefaultIfNull
  - raksha::parser::ir::ParseProgram
  - raksha::parser::ir::CheckAnyCast
  - raksha::parser::ir::IrVisitor::IrVisitor
  - raksha::parser::ir::IrVisitor::visitStringLiteral
  - raksha::parser::ir::IrVisitor::visitAnyValue
  - raksha::parser::ir::IrVisitor::visitNamedTempValue
  - raksha::parser::ir::IrVisitor::visitResult
  - raksha::parser::ir::IrVisitor::visitArgumentList
  - raksha::parser::ir::IrVisitor::visitFloatAttribute
  - raksha::parser::ir::IrVisitor::visitNumAttribute
  - raksha::parser::ir::IrVisitor::visitStringAttribute
  - raksha::parser::ir::IrVisitor::visitAttribute
  - raksha::parser::ir::IrVisitor::visitAttributeList
  - raksha::parser::ir::IrVisitor::visitOperation
  - raksha::parser::ir::IrVisitor::visitBlock
  - raksha::parser::ir::IrVisitor::visitModule
  - raksha::parser::ir::IrVisitor::visitIrProgram
  - raksha::parser::ir::IrVisitor::TakeResult
  - "& MaybeRegisterOperator(absl::string_view operator_name,\n                                        size_t
    num_results)"
  - raksha::parser::ir::IrVisitor::VisitContextOrDefaultIfNull
  - raksha::parser::ir::CheckAnyCast
  - raksha::parser::ir::IrVisitor::IrVisitor
  - raksha::parser::ir::IrVisitor::visitStringLiteral
  - raksha::parser::ir::IrVisitor::visitAnyValue
  - raksha::parser::ir::IrVisitor::visitNamedTempValue
  - raksha::parser::ir::IrVisitor::visitResult
  - raksha::parser::ir::IrVisitor::visitArgumentList
  - raksha::parser::ir::IrVisitor::visitFloatAttribute
  - raksha::parser::ir::IrVisitor::visitNumAttribute
  - raksha::parser::ir::IrVisitor::visitStringAttribute
  - raksha::parser::ir::IrVisitor::visitAttribute
  - raksha::parser::ir::IrVisitor::visitAttributeList
  - raksha::parser::ir::IrVisitor::visitOperation
  - raksha::parser::ir::IrVisitor::visitBlock
  - raksha::parser::ir::IrVisitor::visitModule
  - raksha::parser::ir::IrVisitor::visitIrProgram
  - raksha::parser::ir::IrVisitor::TakeResult
  - "& MaybeRegisterOperator(absl::string_view operator_name,\n                                        size_t
    num_results)"
  - raksha::parser::ir::IrVisitor::VisitContextOrDefaultIfNull
  - raksha::parser::ir::ParseProgram
  source_file: /src/raksha/src/parser/ir/ir_parser.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: AnyId
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/raksha/src/parser/ir/ir_parser.cc
    - fields:
      - name: name
        type: std::string
      item_type: struct
      name: TemporaryId
      pos:
        line_end: 87
        line_start: 85
        source_file: /src/raksha/src/parser/ir/ir_parser.cc
    - fields:
      - name: op_result_ids
        type: std::vector<ValueId>
      - name: operator_name
        type: std::string
      - name: attributes
        type: NamedAttributeMap
      - name: input_ids
        type: std::vector<ValueId>
      item_type: struct
      name: OperationParts
      pos:
        line_end: 218
        line_start: 213
        source_file: /src/raksha/src/parser/ir/ir_parser.cc
    - fields: []
      item_type: struct
      name: AnyId
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/raksha/src/parser/ir/ir_parser.cc
    - fields:
      - name: name
        type: std::string
      item_type: struct
      name: TemporaryId
      pos:
        line_end: 87
        line_start: 85
        source_file: /src/raksha/src/parser/ir/ir_parser.cc
    - fields:
      - name: op_result_ids
        type: std::vector<ValueId>
      - name: operator_name
        type: std::string
      - name: attributes
        type: NamedAttributeMap
      - name: input_ids
        type: std::vector<ValueId>
      item_type: struct
      name: OperationParts
      pos:
        line_end: 218
        line_start: 213
        source_file: /src/raksha/src/parser/ir/ir_parser.cc
    - fields: []
      item_type: struct
      name: AnyId
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/raksha/src/parser/ir/ir_parser.cc
    - fields:
      - name: name
        type: std::string
      item_type: struct
      name: TemporaryId
      pos:
        line_end: 87
        line_start: 85
        source_file: /src/raksha/src/parser/ir/ir_parser.cc
    - fields:
      - name: op_result_ids
        type: std::vector<ValueId>
      - name: operator_name
        type: std::string
      - name: attributes
        type: NamedAttributeMap
      - name: input_ids
        type: std::vector<ValueId>
      item_type: struct
      name: OperationParts
      pos:
        line_end: 218
        line_start: 213
        source_file: /src/raksha/src/parser/ir/ir_parser.cc
    - fields: []
      item_type: struct
      name: AnyId
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/raksha/src/parser/ir/ir_parser.cc
    - fields:
      - name: name
        type: std::string
      item_type: struct
      name: TemporaryId
      pos:
        line_end: 87
        line_start: 85
        source_file: /src/raksha/src/parser/ir/ir_parser.cc
    - fields:
      - name: op_result_ids
        type: std::vector<ValueId>
      - name: operator_name
        type: std::string
      - name: attributes
        type: NamedAttributeMap
      - name: input_ids
        type: std::vector<ValueId>
      item_type: struct
      name: OperationParts
      pos:
        line_end: 218
        line_start: 213
        source_file: /src/raksha/src/parser/ir/ir_parser.cc
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/parser/ir/ir_parser.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: context
        type: std::unique_ptr<raksha::ir::IRContext>
      - name: module
        type: std::unique_ptr<raksha::ir::Module>
      - name: ssa_names
        type: std::unique_ptr<raksha::ir::SsaNames>
      item_type: struct
      name: IrProgramParserResult
      pos:
        line_end: 34
        line_start: 30
        source_file: /src/raksha/src/parser/ir/ir_parser.h
    - fields:
      - name: context
        type: std::unique_ptr<raksha::ir::IRContext>
      - name: module
        type: std::unique_ptr<raksha::ir::Module>
      - name: ssa_names
        type: std::unique_ptr<raksha::ir::SsaNames>
      item_type: struct
      name: IrProgramParserResult
      pos:
        line_end: 34
        line_start: 30
        source_file: /src/raksha/src/parser/ir/ir_parser.h
    typedefs: []
    union: []
- function_names:
  - raksha::parser::ir::TEST_P
  - raksha::parser::ir::TEST_P
  - raksha::parser::ir::TEST
  - raksha::parser::ir::TEST
  - raksha::parser::ir::TEST
  - raksha::parser::ir::TEST
  - raksha::parser::ir::TEST
  - raksha::parser::ir::TEST
  - raksha::parser::ir::TEST
  - raksha::parser::ir::TEST
  - raksha::parser::ir::TEST_P
  - raksha::parser::ir::TEST_P
  - raksha::parser::ir::TEST
  - raksha::parser::ir::TEST
  - raksha::parser::ir::TEST
  - raksha::parser::ir::TEST
  - raksha::parser::ir::TEST
  - raksha::parser::ir::TEST
  - raksha::parser::ir::TEST
  - raksha::parser::ir::TEST
  source_file: /src/raksha/src/parser/ir/ir_parser_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: input
        type: absl::string_view
      - name: output
        type: absl::string_view
      item_type: struct
      name: ParserInputAndExpectedOutput
      pos:
        line_end: 131
        line_start: 128
        source_file: /src/raksha/src/parser/ir/ir_parser_test.cc
    - fields:
      - name: input
        type: absl::string_view
      - name: output
        type: absl::string_view
      item_type: struct
      name: ParserInputAndExpectedOutput
      pos:
        line_end: 131
        line_start: 128
        source_file: /src/raksha/src/parser/ir/ir_parser_test.cc
    typedefs: []
    union: []
- function_names:
  - raksha::parser::ir::MainInner
  - raksha::parser::ir::MainInner
  - raksha::parser::ir::MainInner
  - raksha::parser::ir::MainInner
  - main
  source_file: /src/raksha/src/parser/ir/ir_to_operation_facts.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ambient::GetSettingsName
  - raksha::ambient::GetSettings
  - raksha::ambient::GetUserName
  - raksha::ambient::GetDataConnectionName
  - raksha::ambient::UpdateEdges
  - raksha::ambient::UpdateSettings
  - raksha::ambient::GetSettingsName
  - raksha::ambient::GetSettings
  - raksha::ambient::GetUserName
  - raksha::ambient::GetDataConnectionName
  - raksha::ambient::UpdateEdges
  - raksha::ambient::UpdateSettings
  - raksha::ambient::PolicyChecker::CanUserChangeSetting
  - raksha::ambient::PolicyChecker::CanUserChangeSetting
  - raksha::ambient::PolicyChecker::AvailableSettings
  - raksha::ambient::PolicyChecker::AvailableSettings
  - raksha::ambient::PolicyChecker::ChangeSetting
  - raksha::ambient::PolicyChecker::AddIfValidEdge
  - raksha::ambient::PolicyChecker::AddIfValidEdge
  - raksha::ambient::PolicyChecker::IsValidEdge
  - raksha::ambient::PolicyChecker::IsValidEdge
  - raksha::ambient::PolicyChecker::ValidatePolicyCompliance
  - raksha::ambient::GetSettingsName
  - raksha::ambient::GetSettings
  - raksha::ambient::GetUserName
  - raksha::ambient::GetDataConnectionName
  - raksha::ambient::UpdateEdges
  - raksha::ambient::UpdateSettings
  - raksha::ambient::GetSettingsName
  - raksha::ambient::GetSettings
  - raksha::ambient::GetUserName
  - raksha::ambient::GetDataConnectionName
  - raksha::ambient::UpdateEdges
  - raksha::ambient::UpdateSettings
  - raksha::ambient::PolicyChecker::CanUserChangeSetting
  - raksha::ambient::PolicyChecker::CanUserChangeSetting
  - raksha::ambient::PolicyChecker::AvailableSettings
  - raksha::ambient::PolicyChecker::AvailableSettings
  - raksha::ambient::PolicyChecker::ChangeSetting
  - raksha::ambient::PolicyChecker::AddIfValidEdge
  - raksha::ambient::PolicyChecker::AddIfValidEdge
  - raksha::ambient::PolicyChecker::IsValidEdge
  - raksha::ambient::PolicyChecker::IsValidEdge
  - raksha::ambient::PolicyChecker::ValidatePolicyCompliance
  source_file: /src/raksha/src/frontends/ambient/policy_checker.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ambient::PolicyChecker::PolicyChecker
  - raksha::ambient::PolicyChecker::AddEdge
  - raksha::ambient::PolicyChecker::IsEdgePresent
  - raksha::ambient::PolicyChecker::RemoveEdge
  - raksha::ambient::PolicyChecker::PolicyChecker
  - raksha::ambient::PolicyChecker::AddEdge
  - raksha::ambient::PolicyChecker::IsEdgePresent
  - raksha::ambient::PolicyChecker::RemoveEdge
  source_file: /src/raksha/src/frontends/ambient/policy_checker.h
  types:
    enum:
    - enumerators:
      - name: kUnknown
      - name: kDemoApplicationAudioStore
      - name: kSmartMicrophone
      - name: kDemoApplication
      - name: kDemoApplicationASR
      item_type: enum
      name: Node
      pos:
        line_end: 39
        line_start: 33
        source_file: /src/raksha/src/frontends/ambient/policy_checker.h
    - enumerators:
      - name: kUnknown
      - name: kOwner
      - name: kGuest
      item_type: enum
      name: User
      pos:
        line_end: 45
        line_start: 41
        source_file: /src/raksha/src/frontends/ambient/policy_checker.h
    - enumerators:
      - name: kUnknown
      - name: kRecording
      - name: kStreaming
      - name: kASR
      item_type: enum
      name: Settings
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/raksha/src/frontends/ambient/policy_checker.h
    - enumerators:
      - name: kUnknown
      - name: kDemoApplicationAudioStore
      - name: kSmartMicrophone
      - name: kDemoApplication
      - name: kDemoApplicationASR
      item_type: enum
      name: Node
      pos:
        line_end: 39
        line_start: 33
        source_file: /src/raksha/src/frontends/ambient/policy_checker.h
    - enumerators:
      - name: kUnknown
      - name: kOwner
      - name: kGuest
      item_type: enum
      name: User
      pos:
        line_end: 45
        line_start: 41
        source_file: /src/raksha/src/frontends/ambient/policy_checker.h
    - enumerators:
      - name: kUnknown
      - name: kRecording
      - name: kStreaming
      - name: kASR
      item_type: enum
      name: Settings
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/raksha/src/frontends/ambient/policy_checker.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::ambient::TEST_P
  - raksha::ambient::TEST_P
  - raksha::ambient::TEST_P
  - raksha::ambient::TEST
  - raksha::ambient::TEST
  - raksha::ambient::TEST
  - raksha::ambient::TEST_P
  - raksha::ambient::TEST_P
  - raksha::ambient::TEST_P
  - raksha::ambient::TEST
  - raksha::ambient::TEST
  - raksha::ambient::TEST
  - raksha::ambient::TEST_P
  - raksha::ambient::TEST_P
  - raksha::ambient::TEST_P
  - raksha::ambient::TEST
  - raksha::ambient::TEST
  - raksha::ambient::TEST
  - raksha::ambient::TEST_P
  - raksha::ambient::TEST_P
  - raksha::ambient::TEST_P
  - raksha::ambient::TEST
  - raksha::ambient::TEST
  - raksha::ambient::TEST
  source_file: /src/raksha/src/frontends/ambient/policy_checker_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/frontends/sql/decode.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::DecodeLiteralExprTest::GetTextprotoFormat
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::DecodeLiteralExprTest::GetTextprotoFormat
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::DecodeLiteralExprTest::GetTextprotoFormat
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::DecodeLiteralExprTest::GetTextprotoFormat
  - raksha::frontends::sql::TEST_P
  source_file: /src/raksha/src/frontends/sql/decode_literal_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::NameAndStringTest::NameAndStringTest
  - raksha::frontends::sql::NameAndStringTest::GetTextproto
  - raksha::frontends::sql::NameAndStringTest::GetDecodedValue
  - raksha::frontends::sql::NameAndStringTest::NameAndStringTest
  - raksha::frontends::sql::NameAndStringTest::GetTextproto
  - raksha::frontends::sql::NameAndStringTest::GetDecodedValue
  source_file: /src/raksha/src/frontends/sql/name_and_string_test.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::DecodeExprDeathTest::DecodeExprDeathTest
  - raksha::frontends::sql::DecodeExprDeathTest::GetExprArena
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::DecodeExprDeathTest::DecodeExprDeathTest
  - raksha::frontends::sql::DecodeExprDeathTest::GetExprArena
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::DecodeExprDeathTest::DecodeExprDeathTest
  - raksha::frontends::sql::DecodeExprDeathTest::GetExprArena
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::DecodeExprDeathTest::DecodeExprDeathTest
  - raksha::frontends::sql::DecodeExprDeathTest::GetExprArena
  - raksha::frontends::sql::TEST_P
  source_file: /src/raksha/src/frontends/sql/decode_expr_death_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: textproto
        type: std::string
      - name: death_message
        type: std::string
      item_type: struct
      name: TextprotoDeathMessagePair
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/raksha/src/frontends/sql/decode_expr_death_test.cc
    - fields:
      - name: textproto
        type: std::string
      - name: death_message
        type: std::string
      item_type: struct
      name: TextprotoDeathMessagePair
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/raksha/src/frontends/sql/decode_expr_death_test.cc
    - fields:
      - name: textproto
        type: std::string
      - name: death_message
        type: std::string
      item_type: struct
      name: TextprotoDeathMessagePair
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/raksha/src/frontends/sql/decode_expr_death_test.cc
    - fields:
      - name: textproto
        type: std::string
      - name: death_message
        type: std::string
      item_type: struct
      name: TextprotoDeathMessagePair
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/raksha/src/frontends/sql/decode_expr_death_test.cc
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  source_file: /src/raksha/src/frontends/sql/driver_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::GetModifyTagKind
  - raksha::frontends::sql::AddInferenceRuleForMerge
  - raksha::frontends::sql::AddInferenceRuleForTagTransform
  - raksha::frontends::sql::GetModifyTagKind
  - raksha::frontends::sql::AddInferenceRuleForMerge
  - raksha::frontends::sql::AddInferenceRuleForTagTransform
  - raksha::frontends::sql::DecodeSqlPolicyRules
  - raksha::frontends::sql::GetModifyTagKind
  - raksha::frontends::sql::AddInferenceRuleForMerge
  - raksha::frontends::sql::AddInferenceRuleForTagTransform
  - raksha::frontends::sql::GetModifyTagKind
  - raksha::frontends::sql::AddInferenceRuleForMerge
  - raksha::frontends::sql::AddInferenceRuleForTagTransform
  - raksha::frontends::sql::DecodeSqlPolicyRules
  source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::DecodeSourceTableColumnExprTest::GetTextprotoFormat
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::DecodeSourceTableColumnExprTest::GetTextprotoFormat
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::DecodeSourceTableColumnExprTest::GetTextprotoFormat
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::DecodeSourceTableColumnExprTest::GetTextprotoFormat
  - raksha::frontends::sql::TEST_P
  source_file: /src/raksha/src/frontends/sql/decode_source_column_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  source_file: /src/raksha/src/frontends/sql/decode_tag_transform_operation_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::WrapOperationResultValue
  - raksha::frontends::sql::DecodeSourceTableColumn
  - raksha::frontends::sql::DecodeLiteral
  - raksha::frontends::sql::DecodeMergeOperation
  - raksha::frontends::sql::DecodeTagTransform
  - raksha::frontends::sql::DecodeExpression
  - raksha::frontends::sql::DecodeExpressionArena
  - raksha::frontends::sql::WrapOperationResultValue
  - raksha::frontends::sql::DecodeSourceTableColumn
  - raksha::frontends::sql::DecodeLiteral
  - raksha::frontends::sql::DecodeMergeOperation
  - raksha::frontends::sql::DecodeTagTransform
  - raksha::frontends::sql::DecodeExpression
  - raksha::frontends::sql::DecodeExpressionArena
  source_file: /src/raksha/src/frontends/sql/decode.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - "&DecoderContext::MakeMergeOperation(\n    std::vector<uint64_t> direct_input_ids,\n
    \   std::vector<uint64_t> control_input_ids)"
  - "&DecoderContext::MakeTagTransformOperation(\n    uint64_t transformed_value_id,
    absl::string_view rule_name,\n    const absl::flat_hash_map<std::string, uint64_t>
    &tag_preconditions)"
  - "&DecoderContext::MakeMergeOperation(\n    std::vector<uint64_t> direct_input_ids,\n
    \   std::vector<uint64_t> control_input_ids)"
  - "&DecoderContext::MakeTagTransformOperation(\n    uint64_t transformed_value_id,
    absl::string_view rule_name,\n    const absl::flat_hash_map<std::string, uint64_t>
    &tag_preconditions)"
  source_file: /src/raksha/src/frontends/sql/decoder_context.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  source_file: /src/raksha/src/frontends/sql/decoder_context_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/frontends/sql/driver.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::verify
  - raksha::frontends::sql::verify
  source_file: /src/raksha/src/frontends/sql/driver.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::DecodeMergeOpTest::DecodeMergeOpTest
  - raksha::frontends::sql::DecodeMergeOpTest::GenerateIdListProto
  - raksha::frontends::sql::DecodeMergeOpTest::GetTextproto
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::DecodeMergeOpTest::DecodeMergeOpTest
  - raksha::frontends::sql::DecodeMergeOpTest::GenerateIdListProto
  - raksha::frontends::sql::DecodeMergeOpTest::GetTextproto
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::DecodeMergeOpTest::DecodeMergeOpTest
  - raksha::frontends::sql::DecodeMergeOpTest::GenerateIdListProto
  - raksha::frontends::sql::DecodeMergeOpTest::GetTextproto
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::DecodeMergeOpTest::DecodeMergeOpTest
  - raksha::frontends::sql::DecodeMergeOpTest::GenerateIdListProto
  - raksha::frontends::sql::DecodeMergeOpTest::GetTextproto
  - raksha::frontends::sql::TEST_P
  source_file: /src/raksha/src/frontends/sql/decode_merge_operation_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::DecoderContext::DecoderContext
  - raksha::frontends::sql::DecoderContext::WrapOperationResultValue
  - raksha::frontends::sql::DecoderContext::RegisterValue
  - raksha::frontends::sql::DecoderContext::GetValue
  - '&GetOrCreateStorage(absl::string_view storage_name)'
  - '&MakeLiteralOperation(absl::string_view literal_str)'
  - '&MakeSqlOutputOperation(ir::Value value)'
  - '&BuildTopLevelBlock()'
  - '&ir_context()'
  - '&global_module() const'
  - raksha::frontends::sql::DecoderContext::DecoderContext
  - raksha::frontends::sql::DecoderContext::WrapOperationResultValue
  - raksha::frontends::sql::DecoderContext::RegisterValue
  - raksha::frontends::sql::DecoderContext::GetValue
  - '&GetOrCreateStorage(absl::string_view storage_name)'
  - '&MakeLiteralOperation(absl::string_view literal_str)'
  - '&MakeSqlOutputOperation(ir::Value value)'
  - '&BuildTopLevelBlock()'
  - '&ir_context()'
  - '&global_module() const'
  source_file: /src/raksha/src/frontends/sql/decoder_context.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
  - raksha::frontends::sql::FindAllOperations
  - raksha::frontends::sql::FindOperation
  - raksha::frontends::sql::DecodeSqlTagTransformOpRuleTest::GetExpressionArena
  - raksha::frontends::sql::DecodeSqlTagTransformOpRuleTest::GetParsedModule
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::DecodeSqlMergeOpRuleTest::GetParsedModule
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
  - raksha::frontends::sql::FindAllOperations
  - raksha::frontends::sql::FindOperation
  - raksha::frontends::sql::DecodeSqlTagTransformOpRuleTest::GetExpressionArena
  - raksha::frontends::sql::DecodeSqlTagTransformOpRuleTest::GetParsedModule
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::DecodeSqlMergeOpRuleTest::GetParsedModule
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
  - raksha::frontends::sql::FindAllOperations
  - raksha::frontends::sql::FindOperation
  - raksha::frontends::sql::DecodeSqlTagTransformOpRuleTest::GetExpressionArena
  - raksha::frontends::sql::DecodeSqlTagTransformOpRuleTest::GetParsedModule
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::DecodeSqlMergeOpRuleTest::GetParsedModule
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::ParseSqlPolicyRulesProtoText
  - raksha::frontends::sql::FindAllOperations
  - raksha::frontends::sql::FindOperation
  - raksha::frontends::sql::DecodeSqlTagTransformOpRuleTest::GetExpressionArena
  - raksha::frontends::sql::DecodeSqlTagTransformOpRuleTest::GetParsedModule
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::DecodeSqlMergeOpRuleTest::GetParsedModule
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: test_name
        type: std::string
      - name: proto_text
        type: std::string
      - name: inference_rule_sequence
        type: InferenceRuleSequence
      item_type: struct
      name: DecodeSqlPolicyRuleTestCase
      pos:
        line_end: 79
        line_start: 75
        source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    - fields:
      - name: proto_text
        type: std::string
      - name: conclusion
        type: Conclusion
      item_type: struct
      name: SqlPolicyResultExample
      pos:
        line_end: 91
        line_start: 88
        source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    - fields:
      - name: proto_text
        type: std::string
      - name: argument_attributes
        type: std::string
      - name: premises
        type: std::vector<InputHasIntegrity>
      item_type: struct
      name: SqlPolicyRulePreconditionExample
      pos:
        line_end: 127
        line_start: 120
        source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    - fields:
      - name: control_input_start_index
        type: uint64_t
      - name: input_indices
        type: std::vector<uint64_t>
      item_type: struct
      name: MergeOpInputIndicesExample
      pos:
        line_end: 292
        line_start: 289
        source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    - fields:
      - name: rule_name
        type: std::string
      - name: kind
        type: MergeIntegrityTags::Kind
      item_type: struct
      name: MergeOpConclusionExample
      pos:
        line_end: 297
        line_start: 294
        source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    - fields:
      - name: test_name
        type: std::string
      - name: proto_text
        type: std::string
      - name: inference_rule_sequence
        type: InferenceRuleSequence
      item_type: struct
      name: DecodeSqlPolicyRuleTestCase
      pos:
        line_end: 79
        line_start: 75
        source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    - fields:
      - name: proto_text
        type: std::string
      - name: conclusion
        type: Conclusion
      item_type: struct
      name: SqlPolicyResultExample
      pos:
        line_end: 91
        line_start: 88
        source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    - fields:
      - name: proto_text
        type: std::string
      - name: argument_attributes
        type: std::string
      - name: premises
        type: std::vector<InputHasIntegrity>
      item_type: struct
      name: SqlPolicyRulePreconditionExample
      pos:
        line_end: 127
        line_start: 120
        source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    - fields:
      - name: control_input_start_index
        type: uint64_t
      - name: input_indices
        type: std::vector<uint64_t>
      item_type: struct
      name: MergeOpInputIndicesExample
      pos:
        line_end: 292
        line_start: 289
        source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    - fields:
      - name: rule_name
        type: std::string
      - name: kind
        type: MergeIntegrityTags::Kind
      item_type: struct
      name: MergeOpConclusionExample
      pos:
        line_end: 297
        line_start: 294
        source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    - fields:
      - name: test_name
        type: std::string
      - name: proto_text
        type: std::string
      - name: inference_rule_sequence
        type: InferenceRuleSequence
      item_type: struct
      name: DecodeSqlPolicyRuleTestCase
      pos:
        line_end: 79
        line_start: 75
        source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    - fields:
      - name: proto_text
        type: std::string
      - name: conclusion
        type: Conclusion
      item_type: struct
      name: SqlPolicyResultExample
      pos:
        line_end: 91
        line_start: 88
        source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    - fields:
      - name: proto_text
        type: std::string
      - name: argument_attributes
        type: std::string
      - name: premises
        type: std::vector<InputHasIntegrity>
      item_type: struct
      name: SqlPolicyRulePreconditionExample
      pos:
        line_end: 127
        line_start: 120
        source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    - fields:
      - name: control_input_start_index
        type: uint64_t
      - name: input_indices
        type: std::vector<uint64_t>
      item_type: struct
      name: MergeOpInputIndicesExample
      pos:
        line_end: 292
        line_start: 289
        source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    - fields:
      - name: rule_name
        type: std::string
      - name: kind
        type: MergeIntegrityTags::Kind
      item_type: struct
      name: MergeOpConclusionExample
      pos:
        line_end: 297
        line_start: 294
        source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    - fields:
      - name: test_name
        type: std::string
      - name: proto_text
        type: std::string
      - name: inference_rule_sequence
        type: InferenceRuleSequence
      item_type: struct
      name: DecodeSqlPolicyRuleTestCase
      pos:
        line_end: 79
        line_start: 75
        source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    - fields:
      - name: proto_text
        type: std::string
      - name: conclusion
        type: Conclusion
      item_type: struct
      name: SqlPolicyResultExample
      pos:
        line_end: 91
        line_start: 88
        source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    - fields:
      - name: proto_text
        type: std::string
      - name: argument_attributes
        type: std::string
      - name: premises
        type: std::vector<InputHasIntegrity>
      item_type: struct
      name: SqlPolicyRulePreconditionExample
      pos:
        line_end: 127
        line_start: 120
        source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    - fields:
      - name: control_input_start_index
        type: uint64_t
      - name: input_indices
        type: std::vector<uint64_t>
      item_type: struct
      name: MergeOpInputIndicesExample
      pos:
        line_end: 292
        line_start: 289
        source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    - fields:
      - name: rule_name
        type: std::string
      - name: kind
        type: MergeIntegrityTags::Kind
      item_type: struct
      name: MergeOpConclusionExample
      pos:
        line_end: 297
        line_start: 294
        source_file: /src/raksha/src/frontends/sql/decode_sql_policy_rules_test.cc
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::SqlOutputOpTest::SqlOutputOpTest
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::SqlOutputOpTest::SqlOutputOpTest
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::SqlOutputOpTest::SqlOutputOpTest
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::SqlOutputOpTest::SqlOutputOpTest
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  source_file: /src/raksha/src/frontends/sql/ops/sql_output_op_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::testing::ExampleValueTestHelper::ExampleValueTestHelper
  - raksha::frontends::sql::testing::ExampleValueTestHelper::GetOperationResult
  - raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
  - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
  - '& GetBlock() const'
  - raksha::frontends::sql::testing::ExampleValueTestHelper::ExampleValueTestHelper
  - raksha::frontends::sql::testing::ExampleValueTestHelper::GetOperationResult
  - raksha::frontends::sql::testing::ExampleValueTestHelper::GetBlockArgument
  - raksha::frontends::sql::testing::ExampleValueTestHelper::GetAny
  - '& GetBlock() const'
  source_file: /src/raksha/src/frontends/sql/ops/example_value_test_helper.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::TagTransformOpTest::TagTransformOpTest
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TagTransformOpTest::TagTransformOpTest
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TagTransformOpTest::TagTransformOpTest
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TagTransformOpTest::TagTransformOpTest
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST
  source_file: /src/raksha/src/frontends/sql/ops/tag_transform_op_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::SqlOutputOp::Create
  - raksha::frontends::sql::SqlOutputOp::GetValueMarkedAsOutput
  - raksha::frontends::sql::SqlOutputOp::Create
  - raksha::frontends::sql::SqlOutputOp::GetValueMarkedAsOutput
  source_file: /src/raksha/src/frontends/sql/ops/sql_output_op.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  source_file: /src/raksha/src/frontends/sql/ops/op_traits_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TestOp::value
  - raksha::frontends::sql::AnotherTestOp::value
  - raksha::frontends::sql::SqlOpGetIfTest::SqlOpGetIfTest
  - raksha::frontends::sql::TEST_F
  - raksha::frontends::sql::TEST_F
  - raksha::frontends::sql::SqlOpGetIfTest::SqlOpGetIfTest
  - raksha::frontends::sql::TEST_F
  - raksha::frontends::sql::TEST_F
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TestOp::value
  - raksha::frontends::sql::AnotherTestOp::value
  - raksha::frontends::sql::SqlOpGetIfTest::SqlOpGetIfTest
  - raksha::frontends::sql::TEST_F
  - raksha::frontends::sql::TEST_F
  - raksha::frontends::sql::SqlOpGetIfTest::SqlOpGetIfTest
  - raksha::frontends::sql::TEST_F
  - raksha::frontends::sql::TEST_F
  source_file: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: kName
        type: absl::string_view
      item_type: struct
      name: OpTraits<TestOp>
      pos:
        line_end: 71
        line_start: 69
        source_file: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    - fields:
      - name: kName
        type: absl::string_view
      item_type: struct
      name: OpTraits<AnotherTestOp>
      pos:
        line_end: 80
        line_start: 78
        source_file: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    - fields:
      - name: kName
        type: absl::string_view
      item_type: struct
      name: OpTraits<TestOp>
      pos:
        line_end: 71
        line_start: 69
        source_file: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    - fields:
      - name: kName
        type: absl::string_view
      item_type: struct
      name: OpTraits<AnotherTestOp>
      pos:
        line_end: 80
        line_start: 78
        source_file: /src/raksha/src/frontends/sql/ops/sql_op_test.cc
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/frontends/sql/ops/merge_op.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::MergeOp::Create
  - raksha::frontends::sql::MergeOp::GetDirectInputs
  - raksha::frontends::sql::MergeOp::GetControlInputs
  - raksha::frontends::sql::MergeOp::GetControlInputStartIndex
  - raksha::frontends::sql::MergeOp::Create
  - raksha::frontends::sql::MergeOp::GetDirectInputs
  - raksha::frontends::sql::MergeOp::GetControlInputs
  - raksha::frontends::sql::MergeOp::GetControlInputStartIndex
  source_file: /src/raksha/src/frontends/sql/ops/merge_op.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::TagTransformOp::Create
  - raksha::frontends::sql::TagTransformOp::GetTransformedValueIndex
  - raksha::frontends::sql::TagTransformOp::GetTransformedValue
  - raksha::frontends::sql::TagTransformOp::GetPreconditions
  - raksha::frontends::sql::TagTransformOp::GetPreconditionInputIndices
  - raksha::frontends::sql::TagTransformOp::GetRuleName
  - raksha::frontends::sql::TagTransformOp::Create
  - raksha::frontends::sql::TagTransformOp::GetTransformedValueIndex
  - raksha::frontends::sql::TagTransformOp::GetTransformedValue
  - raksha::frontends::sql::TagTransformOp::GetPreconditions
  - raksha::frontends::sql::TagTransformOp::GetPreconditionInputIndices
  - raksha::frontends::sql::TagTransformOp::GetRuleName
  source_file: /src/raksha/src/frontends/sql/ops/tag_transform_op.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::LiteralOp::Create
  - raksha::frontends::sql::LiteralOp::GetLiteralString
  - raksha::frontends::sql::LiteralOp::Create
  - raksha::frontends::sql::LiteralOp::GetLiteralString
  source_file: /src/raksha/src/frontends/sql/ops/literal_op.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DEFINE_OP_TRAITS
  - DEFINE_OP_TRAITS
  source_file: /src/raksha/src/frontends/sql/ops/op_traits.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: OpTraits
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/raksha/src/frontends/sql/ops/op_traits.h
    - fields: []
      item_type: struct
      name: OpTraits
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/raksha/src/frontends/sql/ops/op_traits.h
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::SqlOp::GetOperator
  - raksha::frontends::sql::SqlOp::RegisterOperator
  - raksha::frontends::sql::SqlOp::GetIf
  - ~SqlOp()
  - raksha::frontends::sql::SqlOp::GetOperator
  - raksha::frontends::sql::SqlOp::RegisterOperator
  - raksha::frontends::sql::SqlOp::GetIf
  - ~SqlOp()
  source_file: /src/raksha/src/frontends/sql/ops/sql_op.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  source_file: /src/raksha/src/frontends/sql/ops/literal_op_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::MergeOpTest::MergeOpTest
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::MergeOpTest::MergeOpTest
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::MergeOpTest::MergeOpTest
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::MergeOpTest::MergeOpTest
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST_P
  - raksha::frontends::sql::TEST
  - raksha::frontends::sql::TEST
  source_file: /src/raksha/src/frontends/sql/ops/merge_op_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/frontends/sql/ops/literal_op.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/raksha/src/frontends/sql/ops/tag_transform_op.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sql::testing::UnwrapDefaultOperationResult
  - raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
  - raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
  - raksha::frontends::sql::testing::UnwrapDefaultOperationResult
  - raksha::frontends::sql::testing::UnwrapTopLevelSqlOutputOp
  - raksha::frontends::sql::testing::CreateExprArenaTextprotoWithLiteralsPrefix
  source_file: /src/raksha/src/frontends/sql/testing/utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~Expr()
  - raksha::frontends::sqlite::Expr::Expr
  - raksha::frontends::sqlite::Expr::Expr
  - '& operator=(const Expr&)'
  - '& operator=(Expr&&)'
  - raksha::frontends::sqlite::Expr::Expr
  - raksha::frontends::sqlite::MergeExpr::MergeExpr
  - raksha::frontends::sqlite::MergeExpr::MergeExpr
  - '& operator[](size_t index) const'
  - raksha::frontends::sqlite::LiteralValue::LiteralValue
  - raksha::frontends::sqlite::LiteralValue::value
  - ~ResultColumn()
  - raksha::frontends::sqlite::ResultColumn::ResultColumn
  - raksha::frontends::sqlite::ResultColumn::ResultColumn
  - '& operator=(const ResultColumn&)'
  - '& operator=(ResultColumn&&)'
  - raksha::frontends::sqlite::ResultColumn::ResultColumn
  - raksha::frontends::sqlite::TableStar::TableStar
  - raksha::frontends::sqlite::TableStar::table_name
  - ~Scan()
  - raksha::frontends::sqlite::Scan::Scan
  - raksha::frontends::sqlite::Scan::Scan
  - '& operator=(const Scan&)'
  - '& operator=(Scan&&)'
  - raksha::frontends::sqlite::Scan::Scan
  - raksha::frontends::sqlite::TableName::TableName
  - raksha::frontends::sqlite::TableName::table_name
  - raksha::frontends::sqlite::Select::Select
  - raksha::frontends::sqlite::Select::is_distinct
  - raksha::frontends::sqlite::Select::is_all
  - '& operator[](size_t index) const'
  - '& input_scan() const'
  - raksha::frontends::sqlite::Program::Program
  - raksha::frontends::sqlite::Program::Program
  - '& operator[](size_t index) const'
  - ~Expr()
  - raksha::frontends::sqlite::Expr::Expr
  - raksha::frontends::sqlite::Expr::Expr
  - '& operator=(const Expr&)'
  - '& operator=(Expr&&)'
  - raksha::frontends::sqlite::Expr::Expr
  - raksha::frontends::sqlite::MergeExpr::MergeExpr
  - raksha::frontends::sqlite::MergeExpr::MergeExpr
  - '& operator[](size_t index) const'
  - raksha::frontends::sqlite::LiteralValue::LiteralValue
  - raksha::frontends::sqlite::LiteralValue::value
  - ~ResultColumn()
  - raksha::frontends::sqlite::ResultColumn::ResultColumn
  - raksha::frontends::sqlite::ResultColumn::ResultColumn
  - '& operator=(const ResultColumn&)'
  - '& operator=(ResultColumn&&)'
  - raksha::frontends::sqlite::ResultColumn::ResultColumn
  - raksha::frontends::sqlite::TableStar::TableStar
  - raksha::frontends::sqlite::TableStar::table_name
  - ~Scan()
  - raksha::frontends::sqlite::Scan::Scan
  - raksha::frontends::sqlite::Scan::Scan
  - '& operator=(const Scan&)'
  - '& operator=(Scan&&)'
  - raksha::frontends::sqlite::Scan::Scan
  - raksha::frontends::sqlite::TableName::TableName
  - raksha::frontends::sqlite::TableName::table_name
  - raksha::frontends::sqlite::Select::Select
  - raksha::frontends::sqlite::Select::is_distinct
  - raksha::frontends::sqlite::Select::is_all
  - '& operator[](size_t index) const'
  - '& input_scan() const'
  - raksha::frontends::sqlite::Program::Program
  - raksha::frontends::sqlite::Program::Program
  - '& operator[](size_t index) const'
  source_file: /src/raksha/src/frontends/sqlite/ast.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  - raksha::frontends::sqlite::TEST
  source_file: /src/raksha/src/frontends/sqlite/ast_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/raksha/gcb/rbe/configs/path/cc/tools/cpp/empty.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
