@@ -27,12 +27,12 @@ module Ordering {
27
27
// before the actual call.
28
28
exists ( Call call |
29
29
(
30
- call .getAnArgument ( ) = e1
30
+ call .getAnArgument ( ) . getAChild * ( ) = e1
31
31
or
32
32
// Postfix expression designating the called function
33
33
// We current only handle call through function pointers because the postfix expression
34
34
// of regular function calls is not available. That is, identifying `f` in `f(...)`
35
- call .( ExprCall ) .getExpr ( ) = e1
35
+ call .( ExprCall ) .getExpr ( ) . getAChild * ( ) = e1
36
36
) and
37
37
call .getTarget ( ) = e2 .getEnclosingFunction ( )
38
38
)
@@ -42,21 +42,21 @@ module Ordering {
42
42
exists ( BinaryLogicalOperation blop |
43
43
blop instanceof LogicalAndExpr or blop instanceof LogicalOrExpr
44
44
|
45
- blop .getLeftOperand ( ) = e1 and blop .getRightOperand ( ) = e2
45
+ blop .getLeftOperand ( ) . getAChild * ( ) = e1 and blop .getRightOperand ( ) . getAChild * ( ) = e2
46
46
)
47
47
or
48
48
// 6.5.17 point 2 - There is a sequence pointt between the left operand and the right operand.
49
49
exists ( CommaExpr ce , Expr lhs , Expr rhs |
50
50
lhs = ce .getLeftOperand ( ) and
51
51
rhs = ce .getRightOperand ( )
52
52
|
53
- lhs = e1 . getParent * ( ) and rhs = e2 . getParent * ( )
53
+ lhs . getAChild * ( ) = e1 and rhs . getAChild * ( ) = e2
54
54
)
55
55
or
56
56
// 6.5.15 point 4 - There is a sequence point between the first operand and the evaluation of the second or third.
57
57
exists ( ConditionalExpr cond |
58
- cond .getCondition ( ) = e1 and
59
- ( cond .getThen ( ) = e2 or cond .getElse ( ) = e2 )
58
+ cond .getCondition ( ) . getAChild * ( ) = e1 and
59
+ ( cond .getThen ( ) . getAChild * ( ) = e2 or cond .getElse ( ) . getAChild * ( ) = e2 )
60
60
)
61
61
or
62
62
// Between the evaluation of a full expression and the next to be evaluated full expression.
0 commit comments