-
Notifications
You must be signed in to change notification settings - Fork 1.7k
/
Copy pathloops.ql
32 lines (30 loc) · 870 Bytes
/
loops.ql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import cpp
class ExprStmt_ extends ExprStmt {
override string toString() { result = "ExprStmt: " + this.getExpr().toString() }
}
from Loop l, string s, Element e
where
s = "getCondition()" and
e = l.getCondition()
or
s = "getStmt()" and
e = l.getStmt()
or
s = "(ForStmt).getInitialization()" and
e = l.(ForStmt).getInitialization()
or
s = "(ForStmt).getUpdate()" and
e = l.(ForStmt).getUpdate()
or
s = "(ForStmt).getAnIterationVariable()" and
e = l.(ForStmt).getAnIterationVariable()
or
s = "(RangeBasedForStmt).getVariable()" and
e = l.(RangeBasedForStmt).getVariable()
or
s = "(RangeBasedForStmt).getUpdate()" and
e = l.(RangeBasedForStmt).getUpdate()
or
s = "(RangeBasedForStmt).getEnclosingFunction().getATemplateArgument()" and
e = l.(RangeBasedForStmt).getEnclosingFunction().getATemplateArgument()
select l, s, e