@@ -954,17 +954,26 @@ private predicate namedExprChildPredicates(Expr expr, Element ele, string pred)
954
954
expr .( C11GenericExpr ) .getAssociationExpr ( n ) = ele and pred = "getAssociationExpr(" + n + ")"
955
955
)
956
956
or
957
- expr .( Call ) .getQualifier ( ) = ele and pred = "getQualifier()"
958
- or
959
- exists ( int n | expr .( Call ) .getArgument ( n ) = ele and pred = "getArgument(" + n .toString ( ) + ")" )
957
+ // OverloadedArrayExpr::getArrayBase/0 also considers qualifiers, and is already handled below.
958
+ not expr .( OverloadedArrayExpr ) .getArrayBase ( ) = expr .( Call ) .getQualifier ( ) and
959
+ expr .( Call ) .getQualifier ( ) = ele and
960
+ pred = "getQualifier()"
961
+ or
962
+ // OverloadedArrayExpr::getArrayBase/0 and OverloadedArrayExpr::getArrayOffset/0 also consider arguments, and are already handled below.
963
+ exists ( int n , Expr arg | expr .( Call ) .getArgument ( n ) = arg |
964
+ not expr .( OverloadedArrayExpr ) .getArrayBase ( ) = arg and
965
+ not expr .( OverloadedArrayExpr ) .getArrayOffset ( ) = arg and
966
+ arg = ele and
967
+ pred = "getArgument(" + n .toString ( ) + ")"
968
+ )
960
969
or
961
970
expr .( ExprCall ) .getExpr ( ) = ele and pred = "getExpr()"
962
971
or
963
972
expr .( OverloadedArrayExpr ) .getArrayBase ( ) = ele and pred = "getArrayBase()"
964
973
or
965
974
expr .( OverloadedArrayExpr ) .getArrayOffset ( ) = ele and pred = "getArrayOffset()"
966
975
or
967
- // OverloadedPointerDereferenceExpr::getExpr/0 also considers qualifiers, which are already handled above for all Call classes.
976
+ // OverloadedPointerDereferenceExpr::getExpr/0 also considers qualifiers, and is already handled above for all Call classes.
968
977
not expr .( OverloadedPointerDereferenceExpr ) .getQualifier ( ) =
969
978
expr .( OverloadedPointerDereferenceExpr ) .getExpr ( ) and
970
979
expr .( OverloadedPointerDereferenceExpr ) .getExpr ( ) = ele and
0 commit comments