Skip to content

Commit 26e6169

Browse files
Remove PointsTo With CodeGen (#1718)
* Import Node Tag & Remove Points To * In Joern's new import resolution, descriptions of entities referred to by imports are described by `Tag` nodes. Since `Import` nodes cannot be tagged, their optional call node is tagged instead. Not all languages use call imports so this excludes languages like Java. This allows import nodes to be tagged to avoid this exclusion. * Removed the `POINTS_TO` edge as it is no longer used, this was initially brought in as an experimental alias analysis edge but realistically this would likely be done on-the-fly or via `Tag` nodes until a better motivation for this edge is given. * Remove `PointsTo` Edge Class This should fix the failing test, seems that this removal will complete PR #1716 * Remove `PointsTo` Factory I have additionally staged and ran +test which now pass. Seems that this will complete PR #1717 * Remove `PointsTo` With CodeGen I have additionally staged and ran +test which now pass. Seems that this will complete PR #1717
1 parent a4e7365 commit 26e6169

26 files changed

+431
-996
lines changed

domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/EdgeTypes.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,6 @@ other words, there is a (name, signature) pair that can be resolved for the type
8080
method output parameter. */
8181
public static final String PARAMETER_LINK = "PARAMETER_LINK";
8282

83-
/** Used for calculating points-to sets for resolving object aliasing. */
84-
public static final String POINTS_TO = "POINTS_TO";
85-
8683
/** This edge indicates that the source node immediately post dominates the destination node. */
8784
public static final String POST_DOMINATE = "POST_DOMINATE";
8885

@@ -130,7 +127,6 @@ other words, there is a (name, signature) pair that can be resolved for the type
130127
add(INHERITS_FROM);
131128
add(IS_CALL_FOR_IMPORT);
132129
add(PARAMETER_LINK);
133-
add(POINTS_TO);
134130
add(POST_DOMINATE);
135131
add(REACHING_DEF);
136132
add(RECEIVER);

domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/edges/package.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ object Factories {
3535
InheritsFrom.factory,
3636
IsCallForImport.factory,
3737
ParameterLink.factory,
38-
PointsTo.factory,
3938
PostDominate.factory,
4039
ReachingDef.factory,
4140
Receiver.factory,

domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Annotation.scala

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -46,20 +46,18 @@ object Annotation {
4646
PropertyNames.allAsJava,
4747
List(
4848
io.shiftleft.codepropertygraph.generated.edges.Argument.layoutInformation,
49-
io.shiftleft.codepropertygraph.generated.edges.Ast.layoutInformation,
50-
io.shiftleft.codepropertygraph.generated.edges.PointsTo.layoutInformation
49+
io.shiftleft.codepropertygraph.generated.edges.Ast.layoutInformation
5150
).asJava,
5251
List(
5352
io.shiftleft.codepropertygraph.generated.edges.Ast.layoutInformation,
5453
io.shiftleft.codepropertygraph.generated.edges.Cfg.layoutInformation,
55-
io.shiftleft.codepropertygraph.generated.edges.PointsTo.layoutInformation,
5654
io.shiftleft.codepropertygraph.generated.edges.ReachingDef.layoutInformation
5755
).asJava
5856
)
5957

6058
object Edges {
61-
val Out: Array[String] = Array("ARGUMENT", "AST", "POINTS_TO")
62-
val In: Array[String] = Array("AST", "CFG", "POINTS_TO", "REACHING_DEF")
59+
val Out: Array[String] = Array("ARGUMENT", "AST")
60+
val In: Array[String] = Array("AST", "CFG", "REACHING_DEF")
6361
}
6462

6563
val factory = new NodeFactory[AnnotationDb] {
@@ -120,9 +118,6 @@ class Annotation(graph_4762: Graph, id_4762: Long /*cf https://github.com/scala/
120118
def _annotationParameterAssignViaAstOut: overflowdb.traversal.Traversal[AnnotationParameterAssign] =
121119
get()._annotationParameterAssignViaAstOut
122120

123-
def pointsToOut: Iterator[CfgNode] = get().pointsToOut
124-
override def _pointsToOut = get()._pointsToOut
125-
126121
def astIn: Iterator[AstNode] = get().astIn
127122
override def _astIn = get()._astIn
128123

@@ -150,9 +145,6 @@ class Annotation(graph_4762: Graph, id_4762: Long /*cf https://github.com/scala/
150145
def cfgIn: Iterator[CfgNode] = get().cfgIn
151146
override def _cfgIn = get()._cfgIn
152147

153-
def pointsToIn: Iterator[CfgNode] = get().pointsToIn
154-
override def _pointsToIn = get()._pointsToIn
155-
156148
def reachingDefIn: Iterator[TemplateDom] = get().reachingDefIn
157149
override def _reachingDefIn = get()._reachingDefIn
158150

@@ -263,11 +255,8 @@ class AnnotationDb(ref: NodeRef[NodeDb]) extends NodeDb(ref) with StoredNode wit
263255
def _annotationParameterAssignViaAstOut: overflowdb.traversal.Traversal[AnnotationParameterAssign] =
264256
astOut.collectAll[AnnotationParameterAssign]
265257

266-
def pointsToOut: Iterator[CfgNode] = createAdjacentNodeScalaIteratorByOffSet[CfgNode](2)
267-
override def _pointsToOut = createAdjacentNodeScalaIteratorByOffSet[StoredNode](2)
268-
269-
def astIn: Iterator[AstNode] = createAdjacentNodeScalaIteratorByOffSet[AstNode](3)
270-
override def _astIn = createAdjacentNodeScalaIteratorByOffSet[StoredNode](3)
258+
def astIn: Iterator[AstNode] = createAdjacentNodeScalaIteratorByOffSet[AstNode](2)
259+
override def _astIn = createAdjacentNodeScalaIteratorByOffSet[StoredNode](2)
271260
def _annotationParameterAssignViaAstIn: overflowdb.traversal.Traversal[AnnotationParameterAssign] =
272261
astIn.collectAll[AnnotationParameterAssign]
273262
def _memberViaAstIn: overflowdb.traversal.Traversal[Member] = astIn.collectAll[Member]
@@ -276,14 +265,11 @@ class AnnotationDb(ref: NodeRef[NodeDb]) extends NodeDb(ref) with StoredNode wit
276265
astIn.collectAll[MethodParameterIn]
277266
def _typeDeclViaAstIn: overflowdb.traversal.Traversal[TypeDecl] = astIn.collectAll[TypeDecl]
278267

279-
def cfgIn: Iterator[CfgNode] = createAdjacentNodeScalaIteratorByOffSet[CfgNode](4)
280-
override def _cfgIn = createAdjacentNodeScalaIteratorByOffSet[StoredNode](4)
281-
282-
def pointsToIn: Iterator[CfgNode] = createAdjacentNodeScalaIteratorByOffSet[CfgNode](5)
283-
override def _pointsToIn = createAdjacentNodeScalaIteratorByOffSet[StoredNode](5)
268+
def cfgIn: Iterator[CfgNode] = createAdjacentNodeScalaIteratorByOffSet[CfgNode](3)
269+
override def _cfgIn = createAdjacentNodeScalaIteratorByOffSet[StoredNode](3)
284270

285-
def reachingDefIn: Iterator[TemplateDom] = createAdjacentNodeScalaIteratorByOffSet[TemplateDom](6)
286-
override def _reachingDefIn = createAdjacentNodeScalaIteratorByOffSet[StoredNode](6)
271+
def reachingDefIn: Iterator[TemplateDom] = createAdjacentNodeScalaIteratorByOffSet[TemplateDom](4)
272+
override def _reachingDefIn = createAdjacentNodeScalaIteratorByOffSet[StoredNode](4)
287273

288274
override def label: String = {
289275
Annotation.Label

domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationLiteral.scala

Lines changed: 9 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -41,21 +41,17 @@ object AnnotationLiteral {
4141
val layoutInformation = new NodeLayoutInformation(
4242
Label,
4343
PropertyNames.allAsJava,
44-
List(
45-
io.shiftleft.codepropertygraph.generated.edges.Argument.layoutInformation,
46-
io.shiftleft.codepropertygraph.generated.edges.PointsTo.layoutInformation
47-
).asJava,
44+
List(io.shiftleft.codepropertygraph.generated.edges.Argument.layoutInformation).asJava,
4845
List(
4946
io.shiftleft.codepropertygraph.generated.edges.Ast.layoutInformation,
5047
io.shiftleft.codepropertygraph.generated.edges.Cfg.layoutInformation,
51-
io.shiftleft.codepropertygraph.generated.edges.PointsTo.layoutInformation,
5248
io.shiftleft.codepropertygraph.generated.edges.ReachingDef.layoutInformation
5349
).asJava
5450
)
5551

5652
object Edges {
57-
val Out: Array[String] = Array("ARGUMENT", "POINTS_TO")
58-
val In: Array[String] = Array("AST", "CFG", "POINTS_TO", "REACHING_DEF")
53+
val Out: Array[String] = Array("ARGUMENT")
54+
val In: Array[String] = Array("AST", "CFG", "REACHING_DEF")
5955
}
6056

6157
val factory = new NodeFactory[AnnotationLiteralDb] {
@@ -105,9 +101,6 @@ class AnnotationLiteral(graph_4762: Graph, id_4762: Long /*cf https://github.com
105101
def argumentOut: Iterator[TemplateDom] = get().argumentOut
106102
override def _argumentOut = get()._argumentOut
107103

108-
def pointsToOut: Iterator[CfgNode] = get().pointsToOut
109-
override def _pointsToOut = get()._pointsToOut
110-
111104
def astIn: Iterator[AstNode] = get().astIn
112105
override def _astIn = get()._astIn
113106

@@ -119,9 +112,6 @@ class AnnotationLiteral(graph_4762: Graph, id_4762: Long /*cf https://github.com
119112
def cfgIn: Iterator[CfgNode] = get().cfgIn
120113
override def _cfgIn = get()._cfgIn
121114

122-
def pointsToIn: Iterator[CfgNode] = get().pointsToIn
123-
override def _pointsToIn = get()._pointsToIn
124-
125115
def reachingDefIn: Iterator[TemplateDom] = get().reachingDefIn
126116
override def _reachingDefIn = get()._reachingDefIn
127117

@@ -224,22 +214,16 @@ class AnnotationLiteralDb(ref: NodeRef[NodeDb])
224214
def argumentOut: Iterator[TemplateDom] = createAdjacentNodeScalaIteratorByOffSet[TemplateDom](0)
225215
override def _argumentOut = createAdjacentNodeScalaIteratorByOffSet[StoredNode](0)
226216

227-
def pointsToOut: Iterator[CfgNode] = createAdjacentNodeScalaIteratorByOffSet[CfgNode](1)
228-
override def _pointsToOut = createAdjacentNodeScalaIteratorByOffSet[StoredNode](1)
229-
230-
def astIn: Iterator[AstNode] = createAdjacentNodeScalaIteratorByOffSet[AstNode](2)
231-
override def _astIn = createAdjacentNodeScalaIteratorByOffSet[StoredNode](2)
217+
def astIn: Iterator[AstNode] = createAdjacentNodeScalaIteratorByOffSet[AstNode](1)
218+
override def _astIn = createAdjacentNodeScalaIteratorByOffSet[StoredNode](1)
232219
def _annotationParameterAssignViaAstIn: overflowdb.traversal.Traversal[AnnotationParameterAssign] =
233220
astIn.collectAll[AnnotationParameterAssign]
234221

235-
def cfgIn: Iterator[CfgNode] = createAdjacentNodeScalaIteratorByOffSet[CfgNode](3)
236-
override def _cfgIn = createAdjacentNodeScalaIteratorByOffSet[StoredNode](3)
237-
238-
def pointsToIn: Iterator[CfgNode] = createAdjacentNodeScalaIteratorByOffSet[CfgNode](4)
239-
override def _pointsToIn = createAdjacentNodeScalaIteratorByOffSet[StoredNode](4)
222+
def cfgIn: Iterator[CfgNode] = createAdjacentNodeScalaIteratorByOffSet[CfgNode](2)
223+
override def _cfgIn = createAdjacentNodeScalaIteratorByOffSet[StoredNode](2)
240224

241-
def reachingDefIn: Iterator[TemplateDom] = createAdjacentNodeScalaIteratorByOffSet[TemplateDom](5)
242-
override def _reachingDefIn = createAdjacentNodeScalaIteratorByOffSet[StoredNode](5)
225+
def reachingDefIn: Iterator[TemplateDom] = createAdjacentNodeScalaIteratorByOffSet[TemplateDom](3)
226+
override def _reachingDefIn = createAdjacentNodeScalaIteratorByOffSet[StoredNode](3)
243227

244228
override def label: String = {
245229
AnnotationLiteral.Label

domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ArrayInitializer.scala

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -41,20 +41,18 @@ object ArrayInitializer {
4141
List(
4242
io.shiftleft.codepropertygraph.generated.edges.Argument.layoutInformation,
4343
io.shiftleft.codepropertygraph.generated.edges.Ast.layoutInformation,
44-
io.shiftleft.codepropertygraph.generated.edges.EvalType.layoutInformation,
45-
io.shiftleft.codepropertygraph.generated.edges.PointsTo.layoutInformation
44+
io.shiftleft.codepropertygraph.generated.edges.EvalType.layoutInformation
4645
).asJava,
4746
List(
4847
io.shiftleft.codepropertygraph.generated.edges.Ast.layoutInformation,
4948
io.shiftleft.codepropertygraph.generated.edges.Cfg.layoutInformation,
50-
io.shiftleft.codepropertygraph.generated.edges.PointsTo.layoutInformation,
5149
io.shiftleft.codepropertygraph.generated.edges.ReachingDef.layoutInformation
5250
).asJava
5351
)
5452

5553
object Edges {
56-
val Out: Array[String] = Array("ARGUMENT", "AST", "EVAL_TYPE", "POINTS_TO")
57-
val In: Array[String] = Array("AST", "CFG", "POINTS_TO", "REACHING_DEF")
54+
val Out: Array[String] = Array("ARGUMENT", "AST", "EVAL_TYPE")
55+
val In: Array[String] = Array("AST", "CFG", "REACHING_DEF")
5856
}
5957

6058
val factory = new NodeFactory[ArrayInitializerDb] {
@@ -116,9 +114,6 @@ class ArrayInitializer(graph_4762: Graph, id_4762: Long /*cf https://github.com/
116114
*/
117115
def _typeViaEvalTypeOut: overflowdb.traversal.Traversal[Type] = get()._typeViaEvalTypeOut
118116

119-
def pointsToOut: Iterator[CfgNode] = get().pointsToOut
120-
override def _pointsToOut = get()._pointsToOut
121-
122117
def astIn: Iterator[AstNode] = get().astIn
123118
override def _astIn = get()._astIn
124119

@@ -130,9 +125,6 @@ class ArrayInitializer(graph_4762: Graph, id_4762: Long /*cf https://github.com/
130125
def cfgIn: Iterator[CfgNode] = get().cfgIn
131126
override def _cfgIn = get()._cfgIn
132127

133-
def pointsToIn: Iterator[CfgNode] = get().pointsToIn
134-
override def _pointsToIn = get()._pointsToIn
135-
136128
def reachingDefIn: Iterator[TemplateDom] = get().reachingDefIn
137129
override def _reachingDefIn = get()._reachingDefIn
138130

@@ -238,22 +230,16 @@ class ArrayInitializerDb(ref: NodeRef[NodeDb])
238230
override def _evalTypeOut = createAdjacentNodeScalaIteratorByOffSet[StoredNode](2)
239231
def _typeViaEvalTypeOut: overflowdb.traversal.Traversal[Type] = evalTypeOut.collectAll[Type]
240232

241-
def pointsToOut: Iterator[CfgNode] = createAdjacentNodeScalaIteratorByOffSet[CfgNode](3)
242-
override def _pointsToOut = createAdjacentNodeScalaIteratorByOffSet[StoredNode](3)
243-
244-
def astIn: Iterator[AstNode] = createAdjacentNodeScalaIteratorByOffSet[AstNode](4)
245-
override def _astIn = createAdjacentNodeScalaIteratorByOffSet[StoredNode](4)
233+
def astIn: Iterator[AstNode] = createAdjacentNodeScalaIteratorByOffSet[AstNode](3)
234+
override def _astIn = createAdjacentNodeScalaIteratorByOffSet[StoredNode](3)
246235
def _annotationParameterAssignViaAstIn: overflowdb.traversal.Traversal[AnnotationParameterAssign] =
247236
astIn.collectAll[AnnotationParameterAssign]
248237

249-
def cfgIn: Iterator[CfgNode] = createAdjacentNodeScalaIteratorByOffSet[CfgNode](5)
250-
override def _cfgIn = createAdjacentNodeScalaIteratorByOffSet[StoredNode](5)
251-
252-
def pointsToIn: Iterator[CfgNode] = createAdjacentNodeScalaIteratorByOffSet[CfgNode](6)
253-
override def _pointsToIn = createAdjacentNodeScalaIteratorByOffSet[StoredNode](6)
238+
def cfgIn: Iterator[CfgNode] = createAdjacentNodeScalaIteratorByOffSet[CfgNode](4)
239+
override def _cfgIn = createAdjacentNodeScalaIteratorByOffSet[StoredNode](4)
254240

255-
def reachingDefIn: Iterator[TemplateDom] = createAdjacentNodeScalaIteratorByOffSet[TemplateDom](7)
256-
override def _reachingDefIn = createAdjacentNodeScalaIteratorByOffSet[StoredNode](7)
241+
def reachingDefIn: Iterator[TemplateDom] = createAdjacentNodeScalaIteratorByOffSet[TemplateDom](5)
242+
override def _reachingDefIn = createAdjacentNodeScalaIteratorByOffSet[StoredNode](5)
257243

258244
override def label: String = {
259245
ArrayInitializer.Label

0 commit comments

Comments
 (0)