File tree Expand file tree Collapse file tree 29 files changed +464
-145
lines changed
cpp/ql/lib/semmle/code/cpp
csharp/ql/lib/semmle/code/csharp/dataflow/internal
java/ql/lib/semmle/code/java/dataflow/internal
python/ql/lib/semmle/python/dataflow/new/internal
ruby/ql/lib/codeql/ruby/dataflow/internal Expand file tree Collapse file tree 29 files changed +464
-145
lines changed Original file line number Diff line number Diff line change @@ -170,6 +170,14 @@ abstract class Configuration extends string {
170
170
*/
171
171
int explorationLimit ( ) { none ( ) }
172
172
173
+ /**
174
+ * Holds if hidden nodes should be included in the data flow graph.
175
+ *
176
+ * This feature should only be used for debugging or when the data flow graph
177
+ * is not visualized (for example in a `path-problem` query).
178
+ */
179
+ predicate includeHiddenNodes ( ) { none ( ) }
180
+
173
181
/**
174
182
* Holds if there is a partial data flow path from `source` to `node`. The
175
183
* approximate distance between `node` and the closest source is `dist` and
@@ -3868,11 +3876,14 @@ abstract private class PathNodeImpl extends PathNode {
3868
3876
abstract NodeEx getNodeEx ( ) ;
3869
3877
3870
3878
predicate isHidden ( ) {
3871
- hiddenNode ( this .getNodeEx ( ) .asNode ( ) ) and
3872
- not this .isSource ( ) and
3873
- not this instanceof PathNodeSink
3874
- or
3875
- this .getNodeEx ( ) instanceof TNodeImplicitRead
3879
+ not this .getConfiguration ( ) .includeHiddenNodes ( ) and
3880
+ (
3881
+ hiddenNode ( this .getNodeEx ( ) .asNode ( ) ) and
3882
+ not this .isSource ( ) and
3883
+ not this instanceof PathNodeSink
3884
+ or
3885
+ this .getNodeEx ( ) instanceof TNodeImplicitRead
3886
+ )
3876
3887
}
3877
3888
3878
3889
private string ppAp ( ) {
Original file line number Diff line number Diff line change @@ -170,6 +170,14 @@ abstract class Configuration extends string {
170
170
*/
171
171
int explorationLimit ( ) { none ( ) }
172
172
173
+ /**
174
+ * Holds if hidden nodes should be included in the data flow graph.
175
+ *
176
+ * This feature should only be used for debugging or when the data flow graph
177
+ * is not visualized (for example in a `path-problem` query).
178
+ */
179
+ predicate includeHiddenNodes ( ) { none ( ) }
180
+
173
181
/**
174
182
* Holds if there is a partial data flow path from `source` to `node`. The
175
183
* approximate distance between `node` and the closest source is `dist` and
@@ -3868,11 +3876,14 @@ abstract private class PathNodeImpl extends PathNode {
3868
3876
abstract NodeEx getNodeEx ( ) ;
3869
3877
3870
3878
predicate isHidden ( ) {
3871
- hiddenNode ( this .getNodeEx ( ) .asNode ( ) ) and
3872
- not this .isSource ( ) and
3873
- not this instanceof PathNodeSink
3874
- or
3875
- this .getNodeEx ( ) instanceof TNodeImplicitRead
3879
+ not this .getConfiguration ( ) .includeHiddenNodes ( ) and
3880
+ (
3881
+ hiddenNode ( this .getNodeEx ( ) .asNode ( ) ) and
3882
+ not this .isSource ( ) and
3883
+ not this instanceof PathNodeSink
3884
+ or
3885
+ this .getNodeEx ( ) instanceof TNodeImplicitRead
3886
+ )
3876
3887
}
3877
3888
3878
3889
private string ppAp ( ) {
Original file line number Diff line number Diff line change @@ -170,6 +170,14 @@ abstract class Configuration extends string {
170
170
*/
171
171
int explorationLimit ( ) { none ( ) }
172
172
173
+ /**
174
+ * Holds if hidden nodes should be included in the data flow graph.
175
+ *
176
+ * This feature should only be used for debugging or when the data flow graph
177
+ * is not visualized (for example in a `path-problem` query).
178
+ */
179
+ predicate includeHiddenNodes ( ) { none ( ) }
180
+
173
181
/**
174
182
* Holds if there is a partial data flow path from `source` to `node`. The
175
183
* approximate distance between `node` and the closest source is `dist` and
@@ -3868,11 +3876,14 @@ abstract private class PathNodeImpl extends PathNode {
3868
3876
abstract NodeEx getNodeEx ( ) ;
3869
3877
3870
3878
predicate isHidden ( ) {
3871
- hiddenNode ( this .getNodeEx ( ) .asNode ( ) ) and
3872
- not this .isSource ( ) and
3873
- not this instanceof PathNodeSink
3874
- or
3875
- this .getNodeEx ( ) instanceof TNodeImplicitRead
3879
+ not this .getConfiguration ( ) .includeHiddenNodes ( ) and
3880
+ (
3881
+ hiddenNode ( this .getNodeEx ( ) .asNode ( ) ) and
3882
+ not this .isSource ( ) and
3883
+ not this instanceof PathNodeSink
3884
+ or
3885
+ this .getNodeEx ( ) instanceof TNodeImplicitRead
3886
+ )
3876
3887
}
3877
3888
3878
3889
private string ppAp ( ) {
Original file line number Diff line number Diff line change @@ -170,6 +170,14 @@ abstract class Configuration extends string {
170
170
*/
171
171
int explorationLimit ( ) { none ( ) }
172
172
173
+ /**
174
+ * Holds if hidden nodes should be included in the data flow graph.
175
+ *
176
+ * This feature should only be used for debugging or when the data flow graph
177
+ * is not visualized (for example in a `path-problem` query).
178
+ */
179
+ predicate includeHiddenNodes ( ) { none ( ) }
180
+
173
181
/**
174
182
* Holds if there is a partial data flow path from `source` to `node`. The
175
183
* approximate distance between `node` and the closest source is `dist` and
@@ -3868,11 +3876,14 @@ abstract private class PathNodeImpl extends PathNode {
3868
3876
abstract NodeEx getNodeEx ( ) ;
3869
3877
3870
3878
predicate isHidden ( ) {
3871
- hiddenNode ( this .getNodeEx ( ) .asNode ( ) ) and
3872
- not this .isSource ( ) and
3873
- not this instanceof PathNodeSink
3874
- or
3875
- this .getNodeEx ( ) instanceof TNodeImplicitRead
3879
+ not this .getConfiguration ( ) .includeHiddenNodes ( ) and
3880
+ (
3881
+ hiddenNode ( this .getNodeEx ( ) .asNode ( ) ) and
3882
+ not this .isSource ( ) and
3883
+ not this instanceof PathNodeSink
3884
+ or
3885
+ this .getNodeEx ( ) instanceof TNodeImplicitRead
3886
+ )
3876
3887
}
3877
3888
3878
3889
private string ppAp ( ) {
Original file line number Diff line number Diff line change @@ -170,6 +170,14 @@ abstract class Configuration extends string {
170
170
*/
171
171
int explorationLimit ( ) { none ( ) }
172
172
173
+ /**
174
+ * Holds if hidden nodes should be included in the data flow graph.
175
+ *
176
+ * This feature should only be used for debugging or when the data flow graph
177
+ * is not visualized (for example in a `path-problem` query).
178
+ */
179
+ predicate includeHiddenNodes ( ) { none ( ) }
180
+
173
181
/**
174
182
* Holds if there is a partial data flow path from `source` to `node`. The
175
183
* approximate distance between `node` and the closest source is `dist` and
@@ -3868,11 +3876,14 @@ abstract private class PathNodeImpl extends PathNode {
3868
3876
abstract NodeEx getNodeEx ( ) ;
3869
3877
3870
3878
predicate isHidden ( ) {
3871
- hiddenNode ( this .getNodeEx ( ) .asNode ( ) ) and
3872
- not this .isSource ( ) and
3873
- not this instanceof PathNodeSink
3874
- or
3875
- this .getNodeEx ( ) instanceof TNodeImplicitRead
3879
+ not this .getConfiguration ( ) .includeHiddenNodes ( ) and
3880
+ (
3881
+ hiddenNode ( this .getNodeEx ( ) .asNode ( ) ) and
3882
+ not this .isSource ( ) and
3883
+ not this instanceof PathNodeSink
3884
+ or
3885
+ this .getNodeEx ( ) instanceof TNodeImplicitRead
3886
+ )
3876
3887
}
3877
3888
3878
3889
private string ppAp ( ) {
Original file line number Diff line number Diff line change @@ -170,6 +170,14 @@ abstract class Configuration extends string {
170
170
*/
171
171
int explorationLimit ( ) { none ( ) }
172
172
173
+ /**
174
+ * Holds if hidden nodes should be included in the data flow graph.
175
+ *
176
+ * This feature should only be used for debugging or when the data flow graph
177
+ * is not visualized (for example in a `path-problem` query).
178
+ */
179
+ predicate includeHiddenNodes ( ) { none ( ) }
180
+
173
181
/**
174
182
* Holds if there is a partial data flow path from `source` to `node`. The
175
183
* approximate distance between `node` and the closest source is `dist` and
@@ -3868,11 +3876,14 @@ abstract private class PathNodeImpl extends PathNode {
3868
3876
abstract NodeEx getNodeEx ( ) ;
3869
3877
3870
3878
predicate isHidden ( ) {
3871
- hiddenNode ( this .getNodeEx ( ) .asNode ( ) ) and
3872
- not this .isSource ( ) and
3873
- not this instanceof PathNodeSink
3874
- or
3875
- this .getNodeEx ( ) instanceof TNodeImplicitRead
3879
+ not this .getConfiguration ( ) .includeHiddenNodes ( ) and
3880
+ (
3881
+ hiddenNode ( this .getNodeEx ( ) .asNode ( ) ) and
3882
+ not this .isSource ( ) and
3883
+ not this instanceof PathNodeSink
3884
+ or
3885
+ this .getNodeEx ( ) instanceof TNodeImplicitRead
3886
+ )
3876
3887
}
3877
3888
3878
3889
private string ppAp ( ) {
Original file line number Diff line number Diff line change @@ -170,6 +170,14 @@ abstract class Configuration extends string {
170
170
*/
171
171
int explorationLimit ( ) { none ( ) }
172
172
173
+ /**
174
+ * Holds if hidden nodes should be included in the data flow graph.
175
+ *
176
+ * This feature should only be used for debugging or when the data flow graph
177
+ * is not visualized (for example in a `path-problem` query).
178
+ */
179
+ predicate includeHiddenNodes ( ) { none ( ) }
180
+
173
181
/**
174
182
* Holds if there is a partial data flow path from `source` to `node`. The
175
183
* approximate distance between `node` and the closest source is `dist` and
@@ -3868,11 +3876,14 @@ abstract private class PathNodeImpl extends PathNode {
3868
3876
abstract NodeEx getNodeEx ( ) ;
3869
3877
3870
3878
predicate isHidden ( ) {
3871
- hiddenNode ( this .getNodeEx ( ) .asNode ( ) ) and
3872
- not this .isSource ( ) and
3873
- not this instanceof PathNodeSink
3874
- or
3875
- this .getNodeEx ( ) instanceof TNodeImplicitRead
3879
+ not this .getConfiguration ( ) .includeHiddenNodes ( ) and
3880
+ (
3881
+ hiddenNode ( this .getNodeEx ( ) .asNode ( ) ) and
3882
+ not this .isSource ( ) and
3883
+ not this instanceof PathNodeSink
3884
+ or
3885
+ this .getNodeEx ( ) instanceof TNodeImplicitRead
3886
+ )
3876
3887
}
3877
3888
3878
3889
private string ppAp ( ) {
Original file line number Diff line number Diff line change @@ -170,6 +170,14 @@ abstract class Configuration extends string {
170
170
*/
171
171
int explorationLimit ( ) { none ( ) }
172
172
173
+ /**
174
+ * Holds if hidden nodes should be included in the data flow graph.
175
+ *
176
+ * This feature should only be used for debugging or when the data flow graph
177
+ * is not visualized (for example in a `path-problem` query).
178
+ */
179
+ predicate includeHiddenNodes ( ) { none ( ) }
180
+
173
181
/**
174
182
* Holds if there is a partial data flow path from `source` to `node`. The
175
183
* approximate distance between `node` and the closest source is `dist` and
@@ -3868,11 +3876,14 @@ abstract private class PathNodeImpl extends PathNode {
3868
3876
abstract NodeEx getNodeEx ( ) ;
3869
3877
3870
3878
predicate isHidden ( ) {
3871
- hiddenNode ( this .getNodeEx ( ) .asNode ( ) ) and
3872
- not this .isSource ( ) and
3873
- not this instanceof PathNodeSink
3874
- or
3875
- this .getNodeEx ( ) instanceof TNodeImplicitRead
3879
+ not this .getConfiguration ( ) .includeHiddenNodes ( ) and
3880
+ (
3881
+ hiddenNode ( this .getNodeEx ( ) .asNode ( ) ) and
3882
+ not this .isSource ( ) and
3883
+ not this instanceof PathNodeSink
3884
+ or
3885
+ this .getNodeEx ( ) instanceof TNodeImplicitRead
3886
+ )
3876
3887
}
3877
3888
3878
3889
private string ppAp ( ) {
Original file line number Diff line number Diff line change @@ -170,6 +170,14 @@ abstract class Configuration extends string {
170
170
*/
171
171
int explorationLimit ( ) { none ( ) }
172
172
173
+ /**
174
+ * Holds if hidden nodes should be included in the data flow graph.
175
+ *
176
+ * This feature should only be used for debugging or when the data flow graph
177
+ * is not visualized (for example in a `path-problem` query).
178
+ */
179
+ predicate includeHiddenNodes ( ) { none ( ) }
180
+
173
181
/**
174
182
* Holds if there is a partial data flow path from `source` to `node`. The
175
183
* approximate distance between `node` and the closest source is `dist` and
@@ -3868,11 +3876,14 @@ abstract private class PathNodeImpl extends PathNode {
3868
3876
abstract NodeEx getNodeEx ( ) ;
3869
3877
3870
3878
predicate isHidden ( ) {
3871
- hiddenNode ( this .getNodeEx ( ) .asNode ( ) ) and
3872
- not this .isSource ( ) and
3873
- not this instanceof PathNodeSink
3874
- or
3875
- this .getNodeEx ( ) instanceof TNodeImplicitRead
3879
+ not this .getConfiguration ( ) .includeHiddenNodes ( ) and
3880
+ (
3881
+ hiddenNode ( this .getNodeEx ( ) .asNode ( ) ) and
3882
+ not this .isSource ( ) and
3883
+ not this instanceof PathNodeSink
3884
+ or
3885
+ this .getNodeEx ( ) instanceof TNodeImplicitRead
3886
+ )
3876
3887
}
3877
3888
3878
3889
private string ppAp ( ) {
Original file line number Diff line number Diff line change @@ -170,6 +170,14 @@ abstract class Configuration extends string {
170
170
*/
171
171
int explorationLimit ( ) { none ( ) }
172
172
173
+ /**
174
+ * Holds if hidden nodes should be included in the data flow graph.
175
+ *
176
+ * This feature should only be used for debugging or when the data flow graph
177
+ * is not visualized (for example in a `path-problem` query).
178
+ */
179
+ predicate includeHiddenNodes ( ) { none ( ) }
180
+
173
181
/**
174
182
* Holds if there is a partial data flow path from `source` to `node`. The
175
183
* approximate distance between `node` and the closest source is `dist` and
@@ -3868,11 +3876,14 @@ abstract private class PathNodeImpl extends PathNode {
3868
3876
abstract NodeEx getNodeEx ( ) ;
3869
3877
3870
3878
predicate isHidden ( ) {
3871
- hiddenNode ( this .getNodeEx ( ) .asNode ( ) ) and
3872
- not this .isSource ( ) and
3873
- not this instanceof PathNodeSink
3874
- or
3875
- this .getNodeEx ( ) instanceof TNodeImplicitRead
3879
+ not this .getConfiguration ( ) .includeHiddenNodes ( ) and
3880
+ (
3881
+ hiddenNode ( this .getNodeEx ( ) .asNode ( ) ) and
3882
+ not this .isSource ( ) and
3883
+ not this instanceof PathNodeSink
3884
+ or
3885
+ this .getNodeEx ( ) instanceof TNodeImplicitRead
3886
+ )
3876
3887
}
3877
3888
3878
3889
private string ppAp ( ) {
You can’t perform that action at this time.
0 commit comments