mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
rename 'overlay[caller]' => 'overlay[caller?]'
This commit is contained in:
@@ -670,7 +670,7 @@ class RefType extends Type, Annotatable, Modifiable, @reftype {
|
|||||||
*
|
*
|
||||||
* For the definition of the notion of *erasure* see JLS v8, section 4.6 (Type Erasure).
|
* For the definition of the notion of *erasure* see JLS v8, section 4.6 (Type Erasure).
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
RefType commonSubtype(RefType other) {
|
RefType commonSubtype(RefType other) {
|
||||||
result.getASourceSupertype*() = erase(this) and
|
result.getASourceSupertype*() = erase(this) and
|
||||||
@@ -1260,7 +1260,7 @@ private Type erase(Type t) {
|
|||||||
*
|
*
|
||||||
* For the definition of the notion of *erasure* see JLS v8, section 4.6 (Type Erasure).
|
* For the definition of the notion of *erasure* see JLS v8, section 4.6 (Type Erasure).
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
predicate haveIntersection(RefType t1, RefType t2) {
|
predicate haveIntersection(RefType t1, RefType t2) {
|
||||||
exists(RefType e1, RefType e2 | e1 = erase(t1) and e2 = erase(t2) |
|
exists(RefType e1, RefType e2 | e1 = erase(t1) and e2 = erase(t2) |
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ predicate iDominates(ControlFlowNode dominator, ControlFlowNode node) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Holds if `dom` strictly dominates `node`. */
|
/** Holds if `dom` strictly dominates `node`. */
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
predicate strictlyDominates(ControlFlowNode dom, ControlFlowNode node) {
|
predicate strictlyDominates(ControlFlowNode dom, ControlFlowNode node) {
|
||||||
// This predicate is gigantic, so it must be inlined.
|
// This predicate is gigantic, so it must be inlined.
|
||||||
@@ -105,7 +105,7 @@ predicate strictlyDominates(ControlFlowNode dom, ControlFlowNode node) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Holds if `dom` dominates `node`. (This is reflexive.) */
|
/** Holds if `dom` dominates `node`. (This is reflexive.) */
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
predicate dominates(ControlFlowNode dom, ControlFlowNode node) {
|
predicate dominates(ControlFlowNode dom, ControlFlowNode node) {
|
||||||
// This predicate is gigantic, so it must be inlined.
|
// This predicate is gigantic, so it must be inlined.
|
||||||
@@ -115,7 +115,7 @@ predicate dominates(ControlFlowNode dom, ControlFlowNode node) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Holds if `dom` strictly post-dominates `node`. */
|
/** Holds if `dom` strictly post-dominates `node`. */
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
predicate strictlyPostDominates(ControlFlowNode dom, ControlFlowNode node) {
|
predicate strictlyPostDominates(ControlFlowNode dom, ControlFlowNode node) {
|
||||||
// This predicate is gigantic, so it must be inlined.
|
// This predicate is gigantic, so it must be inlined.
|
||||||
@@ -125,7 +125,7 @@ predicate strictlyPostDominates(ControlFlowNode dom, ControlFlowNode node) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Holds if `dom` post-dominates `node`. (This is reflexive.) */
|
/** Holds if `dom` post-dominates `node`. (This is reflexive.) */
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
predicate postDominates(ControlFlowNode dom, ControlFlowNode node) {
|
predicate postDominates(ControlFlowNode dom, ControlFlowNode node) {
|
||||||
// This predicate is gigantic, so it must be inlined.
|
// This predicate is gigantic, so it must be inlined.
|
||||||
|
|||||||
@@ -213,7 +213,7 @@ private module DispatchImpl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Holds if arguments at position `apos` match parameters at position `ppos`. */
|
/** Holds if arguments at position `apos` match parameters at position `ppos`. */
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) { ppos = apos }
|
predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) { ppos = apos }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ private module ThisFlow {
|
|||||||
* Holds if data can flow from `node1` to `node2` in zero or more
|
* Holds if data can flow from `node1` to `node2` in zero or more
|
||||||
* local (intra-procedural) steps.
|
* local (intra-procedural) steps.
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
predicate localFlow(Node node1, Node node2) { node1 = node2 or localFlowStepPlus(node1, node2) }
|
predicate localFlow(Node node1, Node node2) { node1 = node2 or localFlowStepPlus(node1, node2) }
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@ private predicate localFlowStepPlus(Node node1, Node node2) = fastTC(localFlowSt
|
|||||||
* Holds if data can flow from `e1` to `e2` in zero or more
|
* Holds if data can flow from `e1` to `e2` in zero or more
|
||||||
* local (intra-procedural) steps.
|
* local (intra-procedural) steps.
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
predicate localExprFlow(Expr e1, Expr e2) { localFlow(exprNode(e1), exprNode(e2)) }
|
predicate localExprFlow(Expr e1, Expr e2) { localFlow(exprNode(e1), exprNode(e2)) }
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ private import semmle.code.java.frameworks.JaxWS
|
|||||||
* Holds if taint can flow from `src` to `sink` in zero or more
|
* Holds if taint can flow from `src` to `sink` in zero or more
|
||||||
* local (intra-procedural) steps.
|
* local (intra-procedural) steps.
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
predicate localTaint(DataFlow::Node src, DataFlow::Node sink) { localTaintStep*(src, sink) }
|
predicate localTaint(DataFlow::Node src, DataFlow::Node sink) { localTaintStep*(src, sink) }
|
||||||
|
|
||||||
@@ -31,7 +31,7 @@ predicate localTaint(DataFlow::Node src, DataFlow::Node sink) { localTaintStep*(
|
|||||||
* Holds if taint can flow from `src` to `sink` in zero or more
|
* Holds if taint can flow from `src` to `sink` in zero or more
|
||||||
* local (intra-procedural) steps.
|
* local (intra-procedural) steps.
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
predicate localExprTaint(Expr src, Expr sink) {
|
predicate localExprTaint(Expr src, Expr sink) {
|
||||||
localTaint(DataFlow::exprNode(src), DataFlow::exprNode(sink))
|
localTaint(DataFlow::exprNode(src), DataFlow::exprNode(sink))
|
||||||
@@ -74,7 +74,7 @@ module LocalTaintFlow<nodeSig/1 source, nodeSig/1 sink> {
|
|||||||
* (intra-procedural) steps that are restricted to be part of a path between
|
* (intra-procedural) steps that are restricted to be part of a path between
|
||||||
* `source` and `sink`.
|
* `source` and `sink`.
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
predicate hasFlow(DataFlow::Node n1, DataFlow::Node n2) { step*(n1, n2) }
|
predicate hasFlow(DataFlow::Node n1, DataFlow::Node n2) { step*(n1, n2) }
|
||||||
|
|
||||||
@@ -83,7 +83,7 @@ module LocalTaintFlow<nodeSig/1 source, nodeSig/1 sink> {
|
|||||||
* (intra-procedural) steps that are restricted to be part of a path between
|
* (intra-procedural) steps that are restricted to be part of a path between
|
||||||
* `source` and `sink`.
|
* `source` and `sink`.
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
predicate hasExprFlow(Expr n1, Expr n2) {
|
predicate hasExprFlow(Expr n1, Expr n2) {
|
||||||
hasFlow(DataFlow::exprNode(n1), DataFlow::exprNode(n2))
|
hasFlow(DataFlow::exprNode(n1), DataFlow::exprNode(n2))
|
||||||
|
|||||||
@@ -744,7 +744,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
|
|||||||
viableImplNotCallContextReducedInlineLate(call, outercc)
|
viableImplNotCallContextReducedInlineLate(call, outercc)
|
||||||
}
|
}
|
||||||
|
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
private predicate fwdFlowInCand(
|
private predicate fwdFlowInCand(
|
||||||
Call call, ArgNd arg, Cc outercc, Callable inner, ParamNd p, SummaryCtx summaryCtx,
|
Call call, ArgNd arg, Cc outercc, Callable inner, ParamNd p, SummaryCtx summaryCtx,
|
||||||
@@ -759,7 +759,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
|
|||||||
callEdgeArgParamRestrictedInlineLate(call, inner, arg, p, emptyAp)
|
callEdgeArgParamRestrictedInlineLate(call, inner, arg, p, emptyAp)
|
||||||
}
|
}
|
||||||
|
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
private predicate fwdFlowInCandTypeFlowDisabled(
|
private predicate fwdFlowInCandTypeFlowDisabled(
|
||||||
Call call, ArgNd arg, Cc outercc, Callable inner, ParamNd p, SummaryCtx summaryCtx,
|
Call call, ArgNd arg, Cc outercc, Callable inner, ParamNd p, SummaryCtx summaryCtx,
|
||||||
@@ -796,7 +796,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
|
|||||||
innercc = getCallContextCall(call, inner)
|
innercc = getCallContextCall(call, inner)
|
||||||
}
|
}
|
||||||
|
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
predicate fwdFlowIn(
|
predicate fwdFlowIn(
|
||||||
Call call, ArgNd arg, Callable inner, ParamNd p, Cc outercc, CcCall innercc,
|
Call call, ArgNd arg, Callable inner, ParamNd p, Cc outercc, CcCall innercc,
|
||||||
@@ -2326,7 +2326,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
|
|||||||
* For more information, see
|
* For more information, see
|
||||||
* [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/).
|
* [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/).
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
deprecated final predicate hasLocationInfo(
|
deprecated final predicate hasLocationInfo(
|
||||||
string filepath, int startline, int startcolumn, int endline, int endcolumn
|
string filepath, int startline, int startcolumn, int endline, int endcolumn
|
||||||
@@ -2530,7 +2530,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
|
|||||||
|
|
||||||
class ApHeadContent = Unit;
|
class ApHeadContent = Unit;
|
||||||
|
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
ApHeadContent getHeadContent(Ap ap) { exists(result) and ap = true }
|
ApHeadContent getHeadContent(Ap ap) { exists(result) and ap = true }
|
||||||
|
|
||||||
|
|||||||
@@ -678,7 +678,7 @@ module MakeImplCommon<LocationSig Location, InputSig<Location> Lang> {
|
|||||||
|
|
||||||
class CcCall = CallContextCall;
|
class CcCall = CallContextCall;
|
||||||
|
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
predicate matchesCall(CcCall cc, Call call) {
|
predicate matchesCall(CcCall cc, Call call) {
|
||||||
cc = Input2::getSpecificCallContextCall(call, _) or
|
cc = Input2::getSpecificCallContextCall(call, _) or
|
||||||
@@ -890,7 +890,7 @@ module MakeImplCommon<LocationSig Location, InputSig<Location> Lang> {
|
|||||||
pragma[nomagic]
|
pragma[nomagic]
|
||||||
private Callable getEnclosingCallable0() { nodeEnclosingCallable(this.projectToNode(), result) }
|
private Callable getEnclosingCallable0() { nodeEnclosingCallable(this.projectToNode(), result) }
|
||||||
|
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
Callable getEnclosingCallable() {
|
Callable getEnclosingCallable() {
|
||||||
pragma[only_bind_out](this).getEnclosingCallable0() = pragma[only_bind_into](result)
|
pragma[only_bind_out](this).getEnclosingCallable0() = pragma[only_bind_into](result)
|
||||||
@@ -905,7 +905,7 @@ module MakeImplCommon<LocationSig Location, InputSig<Location> Lang> {
|
|||||||
isTopType(result) and this.isImplicitReadNode(_)
|
isTopType(result) and this.isImplicitReadNode(_)
|
||||||
}
|
}
|
||||||
|
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
Type getType() { pragma[only_bind_out](this).getType0() = pragma[only_bind_into](result) }
|
Type getType() { pragma[only_bind_out](this).getType0() = pragma[only_bind_into](result) }
|
||||||
|
|
||||||
@@ -2417,14 +2417,14 @@ module MakeImplCommon<LocationSig Location, InputSig<Location> Lang> {
|
|||||||
* predicate ensures that joins go from `n` to the result instead of the other
|
* predicate ensures that joins go from `n` to the result instead of the other
|
||||||
* way around.
|
* way around.
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
Callable getNodeEnclosingCallable(Node n) {
|
Callable getNodeEnclosingCallable(Node n) {
|
||||||
nodeEnclosingCallable(pragma[only_bind_out](n), pragma[only_bind_into](result))
|
nodeEnclosingCallable(pragma[only_bind_out](n), pragma[only_bind_into](result))
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Gets the type of `n` used for type pruning. */
|
/** Gets the type of `n` used for type pruning. */
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
Type getNodeDataFlowType(Node n) {
|
Type getNodeDataFlowType(Node n) {
|
||||||
nodeType(pragma[only_bind_out](n), pragma[only_bind_into](result))
|
nodeType(pragma[only_bind_out](n), pragma[only_bind_into](result))
|
||||||
|
|||||||
@@ -1786,7 +1786,7 @@ module MakeImplStage1<LocationSig Location, InputSig<Location> Lang> {
|
|||||||
* For more information, see
|
* For more information, see
|
||||||
* [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/).
|
* [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/).
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
deprecated predicate hasLocationInfo(
|
deprecated predicate hasLocationInfo(
|
||||||
string filepath, int startline, int startcolumn, int endline, int endcolumn
|
string filepath, int startline, int startcolumn, int endline, int endcolumn
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ module Make<RegexTreeViewSig TreeImpl> {
|
|||||||
/**
|
/**
|
||||||
* Holds if the tuple `(r1, r2, r3)` might be on path from a start-state to an end-state in the product automaton.
|
* Holds if the tuple `(r1, r2, r3)` might be on path from a start-state to an end-state in the product automaton.
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
predicate isFeasibleTuple(State r1, State r2, State r3) {
|
predicate isFeasibleTuple(State r1, State r2, State r3) {
|
||||||
// The first element is either inside a repetition (or the start state itself)
|
// The first element is either inside a repetition (or the start state itself)
|
||||||
|
|||||||
@@ -851,7 +851,7 @@ module Make1<LocationSig Location, InputSig1<Location> Input1> {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
predicate baseTypeMentionHasNonTypeParameterAt(
|
predicate baseTypeMentionHasNonTypeParameterAt(
|
||||||
Type sub, TypeMention baseMention, TypePath path, Type t
|
Type sub, TypeMention baseMention, TypePath path, Type t
|
||||||
@@ -859,7 +859,7 @@ module Make1<LocationSig Location, InputSig1<Location> Input1> {
|
|||||||
not t = sub.getATypeParameter() and baseTypeMentionHasTypeAt(sub, baseMention, path, t)
|
not t = sub.getATypeParameter() and baseTypeMentionHasTypeAt(sub, baseMention, path, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
predicate baseTypeMentionHasTypeParameterAt(
|
predicate baseTypeMentionHasTypeParameterAt(
|
||||||
Type sub, TypeMention baseMention, TypePath path, TypeParameter tp
|
Type sub, TypeMention baseMention, TypePath path, TypeParameter tp
|
||||||
|
|||||||
@@ -512,7 +512,7 @@ module TypeTracking<LocationSig Location, TypeTrackingInput<Location> I> {
|
|||||||
* }
|
* }
|
||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
TypeTracker smallstep(Node nodeFrom, Node nodeTo) {
|
TypeTracker smallstep(Node nodeFrom, Node nodeTo) {
|
||||||
result = this.smallstepNoSimpleLocalFlowStep(nodeFrom, nodeTo)
|
result = this.smallstepNoSimpleLocalFlowStep(nodeFrom, nodeTo)
|
||||||
@@ -657,7 +657,7 @@ module TypeTracking<LocationSig Location, TypeTrackingInput<Location> I> {
|
|||||||
* }
|
* }
|
||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
overlay[caller]
|
overlay[caller?]
|
||||||
pragma[inline]
|
pragma[inline]
|
||||||
TypeBackTracker smallstep(Node nodeFrom, Node nodeTo) {
|
TypeBackTracker smallstep(Node nodeFrom, Node nodeTo) {
|
||||||
result = this.smallstepNoSimpleLocalFlowStep(nodeFrom, nodeTo)
|
result = this.smallstepNoSimpleLocalFlowStep(nodeFrom, nodeTo)
|
||||||
|
|||||||
Reference in New Issue
Block a user