@@ -954,17 +954,26 @@ private predicate namedExprChildPredicates(Expr expr, Element ele, string pred)
954954 expr .( C11GenericExpr ) .getAssociationExpr ( n ) = ele and pred = "getAssociationExpr(" + n + ")"
955955 )
956956 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+ )
960969 or
961970 expr .( ExprCall ) .getExpr ( ) = ele and pred = "getExpr()"
962971 or
963972 expr .( OverloadedArrayExpr ) .getArrayBase ( ) = ele and pred = "getArrayBase()"
964973 or
965974 expr .( OverloadedArrayExpr ) .getArrayOffset ( ) = ele and pred = "getArrayOffset()"
966975 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.
968977 not expr .( OverloadedPointerDereferenceExpr ) .getQualifier ( ) =
969978 expr .( OverloadedPointerDereferenceExpr ) .getExpr ( ) and
970979 expr .( OverloadedPointerDereferenceExpr ) .getExpr ( ) = ele and
0 commit comments