@@ -1669,14 +1669,18 @@ private module ExprFlowCached {
1669
1669
result = n .asExpr ( )
1670
1670
}
1671
1671
1672
+ /**
1673
+ * Holds if `asExpr(n1)` doesn't have a result and `n1` flows to `n2` in a single
1674
+ * dataflow step.
1675
+ */
1672
1676
private predicate localStepFromNonExpr ( Node n1 , Node n2 ) {
1673
1677
not exists ( asExpr ( n1 ) ) and
1674
1678
localFlowStep ( n1 , n2 )
1675
1679
}
1676
1680
1677
1681
/**
1678
- * Holds if `n1. asExpr()` doesn't have a result, `n2. asExpr() = e2` and
1679
- * `n2` is the first node reachable from `n1` such that `n2. asExpr()` exists.
1682
+ * Holds if `asExpr(n1 )` doesn't have a result, `asExpr(n2 ) = e2` and
1683
+ * `n2` is the first node reachable from `n1` such that `asExpr(n2 )` exists.
1680
1684
*/
1681
1685
pragma [ nomagic]
1682
1686
private predicate localStepsToExpr ( Node n1 , Node n2 , Expr e2 ) {
@@ -1685,8 +1689,8 @@ private module ExprFlowCached {
1685
1689
}
1686
1690
1687
1691
/**
1688
- * Holds if `n1. asExpr() = e1` and `n2. asExpr() = e2` and `n2` is the first node
1689
- * reachable from `n1` such that `n2. asExpr()` exists.
1692
+ * Holds if `asExpr(n1 ) = e1` and `asExpr(n2 ) = e2` and `n2` is the first node
1693
+ * reachable from `n1` such that `asExpr(n2 )` exists.
1690
1694
*/
1691
1695
private predicate localExprFlowSingleExprStep ( Node n1 , Expr e1 , Node n2 , Expr e2 ) {
1692
1696
exists ( Node mid |
@@ -1697,8 +1701,8 @@ private module ExprFlowCached {
1697
1701
}
1698
1702
1699
1703
/**
1700
- * Holds if `n1. asExpr() = e1` and `e1 != e2` and `n2` is the first reachable node from
1701
- * `n1` such that `n2. asExpr() = e2`.
1704
+ * Holds if `asExpr(n1 ) = e1` and `e1 != e2` and `n2` is the first reachable node from
1705
+ * `n1` such that `asExpr(n2 ) = e2`.
1702
1706
*/
1703
1707
private predicate localExprFlowStepImpl ( Node n1 , Expr e1 , Node n2 , Expr e2 ) {
1704
1708
exists ( Node n , Expr e | localExprFlowSingleExprStep ( n1 , e1 , n , e ) |
0 commit comments