Skip to content

Commit aa30398

Browse files
committed
Dataflow: Count callables instead of nodes for fieldFlowBranchLimit.
1 parent 9eeacea commit aa30398

19 files changed

Lines changed: 228 additions & 76 deletions

File tree

cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -703,8 +703,12 @@ private predicate flowIntoCallNodeCand1(
703703
*/
704704
private int branch(Node n1, Configuration conf) {
705705
result =
706-
strictcount(Node n |
707-
flowOutOfCallNodeCand1(_, n1, n, conf) or flowIntoCallNodeCand1(_, n1, n, conf)
706+
strictcount(DataFlowCallable callable |
707+
exists(Node n |
708+
flowOutOfCallNodeCand1(_, n1, n, conf) or flowIntoCallNodeCand1(_, n1, n, conf)
709+
|
710+
callable = n.getEnclosingCallable()
711+
)
708712
)
709713
}
710714

@@ -715,8 +719,12 @@ private int branch(Node n1, Configuration conf) {
715719
*/
716720
private int join(Node n2, Configuration conf) {
717721
result =
718-
strictcount(Node n |
719-
flowOutOfCallNodeCand1(_, n, n2, conf) or flowIntoCallNodeCand1(_, n, n2, conf)
722+
strictcount(DataFlowCallable callable |
723+
exists(Node n |
724+
flowOutOfCallNodeCand1(_, n, n2, conf) or flowIntoCallNodeCand1(_, n, n2, conf)
725+
|
726+
callable = n.getEnclosingCallable()
727+
)
720728
)
721729
}
722730

cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -703,8 +703,12 @@ private predicate flowIntoCallNodeCand1(
703703
*/
704704
private int branch(Node n1, Configuration conf) {
705705
result =
706-
strictcount(Node n |
707-
flowOutOfCallNodeCand1(_, n1, n, conf) or flowIntoCallNodeCand1(_, n1, n, conf)
706+
strictcount(DataFlowCallable callable |
707+
exists(Node n |
708+
flowOutOfCallNodeCand1(_, n1, n, conf) or flowIntoCallNodeCand1(_, n1, n, conf)
709+
|
710+
callable = n.getEnclosingCallable()
711+
)
708712
)
709713
}
710714

@@ -715,8 +719,12 @@ private int branch(Node n1, Configuration conf) {
715719
*/
716720
private int join(Node n2, Configuration conf) {
717721
result =
718-
strictcount(Node n |
719-
flowOutOfCallNodeCand1(_, n, n2, conf) or flowIntoCallNodeCand1(_, n, n2, conf)
722+
strictcount(DataFlowCallable callable |
723+
exists(Node n |
724+
flowOutOfCallNodeCand1(_, n, n2, conf) or flowIntoCallNodeCand1(_, n, n2, conf)
725+
|
726+
callable = n.getEnclosingCallable()
727+
)
720728
)
721729
}
722730

cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -703,8 +703,12 @@ private predicate flowIntoCallNodeCand1(
703703
*/
704704
private int branch(Node n1, Configuration conf) {
705705
result =
706-
strictcount(Node n |
707-
flowOutOfCallNodeCand1(_, n1, n, conf) or flowIntoCallNodeCand1(_, n1, n, conf)
706+
strictcount(DataFlowCallable callable |
707+
exists(Node n |
708+
flowOutOfCallNodeCand1(_, n1, n, conf) or flowIntoCallNodeCand1(_, n1, n, conf)
709+
|
710+
callable = n.getEnclosingCallable()
711+
)
708712
)
709713
}
710714

@@ -715,8 +719,12 @@ private int branch(Node n1, Configuration conf) {
715719
*/
716720
private int join(Node n2, Configuration conf) {
717721
result =
718-
strictcount(Node n |
719-
flowOutOfCallNodeCand1(_, n, n2, conf) or flowIntoCallNodeCand1(_, n, n2, conf)
722+
strictcount(DataFlowCallable callable |
723+
exists(Node n |
724+
flowOutOfCallNodeCand1(_, n, n2, conf) or flowIntoCallNodeCand1(_, n, n2, conf)
725+
|
726+
callable = n.getEnclosingCallable()
727+
)
720728
)
721729
}
722730

cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -703,8 +703,12 @@ private predicate flowIntoCallNodeCand1(
703703
*/
704704
private int branch(Node n1, Configuration conf) {
705705
result =
706-
strictcount(Node n |
707-
flowOutOfCallNodeCand1(_, n1, n, conf) or flowIntoCallNodeCand1(_, n1, n, conf)
706+
strictcount(DataFlowCallable callable |
707+
exists(Node n |
708+
flowOutOfCallNodeCand1(_, n1, n, conf) or flowIntoCallNodeCand1(_, n1, n, conf)
709+
|
710+
callable = n.getEnclosingCallable()
711+
)
708712
)
709713
}
710714

@@ -715,8 +719,12 @@ private int branch(Node n1, Configuration conf) {
715719
*/
716720
private int join(Node n2, Configuration conf) {
717721
result =
718-
strictcount(Node n |
719-
flowOutOfCallNodeCand1(_, n, n2, conf) or flowIntoCallNodeCand1(_, n, n2, conf)
722+
strictcount(DataFlowCallable callable |
723+
exists(Node n |
724+
flowOutOfCallNodeCand1(_, n, n2, conf) or flowIntoCallNodeCand1(_, n, n2, conf)
725+
|
726+
callable = n.getEnclosingCallable()
727+
)
720728
)
721729
}
722730

cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -703,8 +703,12 @@ private predicate flowIntoCallNodeCand1(
703703
*/
704704
private int branch(Node n1, Configuration conf) {
705705
result =
706-
strictcount(Node n |
707-
flowOutOfCallNodeCand1(_, n1, n, conf) or flowIntoCallNodeCand1(_, n1, n, conf)
706+
strictcount(DataFlowCallable callable |
707+
exists(Node n |
708+
flowOutOfCallNodeCand1(_, n1, n, conf) or flowIntoCallNodeCand1(_, n1, n, conf)
709+
|
710+
callable = n.getEnclosingCallable()
711+
)
708712
)
709713
}
710714

@@ -715,8 +719,12 @@ private int branch(Node n1, Configuration conf) {
715719
*/
716720
private int join(Node n2, Configuration conf) {
717721
result =
718-
strictcount(Node n |
719-
flowOutOfCallNodeCand1(_, n, n2, conf) or flowIntoCallNodeCand1(_, n, n2, conf)
722+
strictcount(DataFlowCallable callable |
723+
exists(Node n |
724+
flowOutOfCallNodeCand1(_, n, n2, conf) or flowIntoCallNodeCand1(_, n, n2, conf)
725+
|
726+
callable = n.getEnclosingCallable()
727+
)
720728
)
721729
}
722730

cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -703,8 +703,12 @@ private predicate flowIntoCallNodeCand1(
703703
*/
704704
private int branch(Node n1, Configuration conf) {
705705
result =
706-
strictcount(Node n |
707-
flowOutOfCallNodeCand1(_, n1, n, conf) or flowIntoCallNodeCand1(_, n1, n, conf)
706+
strictcount(DataFlowCallable callable |
707+
exists(Node n |
708+
flowOutOfCallNodeCand1(_, n1, n, conf) or flowIntoCallNodeCand1(_, n1, n, conf)
709+
|
710+
callable = n.getEnclosingCallable()
711+
)
708712
)
709713
}
710714

@@ -715,8 +719,12 @@ private int branch(Node n1, Configuration conf) {
715719
*/
716720
private int join(Node n2, Configuration conf) {
717721
result =
718-
strictcount(Node n |
719-
flowOutOfCallNodeCand1(_, n, n2, conf) or flowIntoCallNodeCand1(_, n, n2, conf)
722+
strictcount(DataFlowCallable callable |
723+
exists(Node n |
724+
flowOutOfCallNodeCand1(_, n, n2, conf) or flowIntoCallNodeCand1(_, n, n2, conf)
725+
|
726+
callable = n.getEnclosingCallable()
727+
)
720728
)
721729
}
722730

cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -703,8 +703,12 @@ private predicate flowIntoCallNodeCand1(
703703
*/
704704
private int branch(Node n1, Configuration conf) {
705705
result =
706-
strictcount(Node n |
707-
flowOutOfCallNodeCand1(_, n1, n, conf) or flowIntoCallNodeCand1(_, n1, n, conf)
706+
strictcount(DataFlowCallable callable |
707+
exists(Node n |
708+
flowOutOfCallNodeCand1(_, n1, n, conf) or flowIntoCallNodeCand1(_, n1, n, conf)
709+
|
710+
callable = n.getEnclosingCallable()
711+
)
708712
)
709713
}
710714

@@ -715,8 +719,12 @@ private int branch(Node n1, Configuration conf) {
715719
*/
716720
private int join(Node n2, Configuration conf) {
717721
result =
718-
strictcount(Node n |
719-
flowOutOfCallNodeCand1(_, n, n2, conf) or flowIntoCallNodeCand1(_, n, n2, conf)
722+
strictcount(DataFlowCallable callable |
723+
exists(Node n |
724+
flowOutOfCallNodeCand1(_, n, n2, conf) or flowIntoCallNodeCand1(_, n, n2, conf)
725+
|
726+
callable = n.getEnclosingCallable()
727+
)
720728
)
721729
}
722730

cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -703,8 +703,12 @@ private predicate flowIntoCallNodeCand1(
703703
*/
704704
private int branch(Node n1, Configuration conf) {
705705
result =
706-
strictcount(Node n |
707-
flowOutOfCallNodeCand1(_, n1, n, conf) or flowIntoCallNodeCand1(_, n1, n, conf)
706+
strictcount(DataFlowCallable callable |
707+
exists(Node n |
708+
flowOutOfCallNodeCand1(_, n1, n, conf) or flowIntoCallNodeCand1(_, n1, n, conf)
709+
|
710+
callable = n.getEnclosingCallable()
711+
)
708712
)
709713
}
710714

@@ -715,8 +719,12 @@ private int branch(Node n1, Configuration conf) {
715719
*/
716720
private int join(Node n2, Configuration conf) {
717721
result =
718-
strictcount(Node n |
719-
flowOutOfCallNodeCand1(_, n, n2, conf) or flowIntoCallNodeCand1(_, n, n2, conf)
722+
strictcount(DataFlowCallable callable |
723+
exists(Node n |
724+
flowOutOfCallNodeCand1(_, n, n2, conf) or flowIntoCallNodeCand1(_, n, n2, conf)
725+
|
726+
callable = n.getEnclosingCallable()
727+
)
720728
)
721729
}
722730

cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -703,8 +703,12 @@ private predicate flowIntoCallNodeCand1(
703703
*/
704704
private int branch(Node n1, Configuration conf) {
705705
result =
706-
strictcount(Node n |
707-
flowOutOfCallNodeCand1(_, n1, n, conf) or flowIntoCallNodeCand1(_, n1, n, conf)
706+
strictcount(DataFlowCallable callable |
707+
exists(Node n |
708+
flowOutOfCallNodeCand1(_, n1, n, conf) or flowIntoCallNodeCand1(_, n1, n, conf)
709+
|
710+
callable = n.getEnclosingCallable()
711+
)
708712
)
709713
}
710714

@@ -715,8 +719,12 @@ private int branch(Node n1, Configuration conf) {
715719
*/
716720
private int join(Node n2, Configuration conf) {
717721
result =
718-
strictcount(Node n |
719-
flowOutOfCallNodeCand1(_, n, n2, conf) or flowIntoCallNodeCand1(_, n, n2, conf)
722+
strictcount(DataFlowCallable callable |
723+
exists(Node n |
724+
flowOutOfCallNodeCand1(_, n, n2, conf) or flowIntoCallNodeCand1(_, n, n2, conf)
725+
|
726+
callable = n.getEnclosingCallable()
727+
)
720728
)
721729
}
722730

csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -703,8 +703,12 @@ private predicate flowIntoCallNodeCand1(
703703
*/
704704
private int branch(Node n1, Configuration conf) {
705705
result =
706-
strictcount(Node n |
707-
flowOutOfCallNodeCand1(_, n1, n, conf) or flowIntoCallNodeCand1(_, n1, n, conf)
706+
strictcount(DataFlowCallable callable |
707+
exists(Node n |
708+
flowOutOfCallNodeCand1(_, n1, n, conf) or flowIntoCallNodeCand1(_, n1, n, conf)
709+
|
710+
callable = n.getEnclosingCallable()
711+
)
708712
)
709713
}
710714

@@ -715,8 +719,12 @@ private int branch(Node n1, Configuration conf) {
715719
*/
716720
private int join(Node n2, Configuration conf) {
717721
result =
718-
strictcount(Node n |
719-
flowOutOfCallNodeCand1(_, n, n2, conf) or flowIntoCallNodeCand1(_, n, n2, conf)
722+
strictcount(DataFlowCallable callable |
723+
exists(Node n |
724+
flowOutOfCallNodeCand1(_, n, n2, conf) or flowIntoCallNodeCand1(_, n, n2, conf)
725+
|
726+
callable = n.getEnclosingCallable()
727+
)
720728
)
721729
}
722730

0 commit comments

Comments
 (0)