mirror of
https://github.com/github/codeql.git
synced 2026-05-14 11:19:27 +02:00
C#: Replace Ssa::ImplicitParameterDefinition with SsaParameterInit.
This commit is contained in:
@@ -126,7 +126,7 @@ private predicate nonNullDef(SsaExplicitWrite def) {
|
||||
*/
|
||||
private predicate dereferenceAt(SsaDefinition def, Dereference d) { d = def.getARead() }
|
||||
|
||||
private predicate isMaybeNullArgument(Ssa::ParameterDefinition def, MaybeNullExpr arg) {
|
||||
private predicate isMaybeNullArgument(SsaParameterInit def, MaybeNullExpr arg) {
|
||||
exists(AssignableDefinitions::ImplicitParameterDefinition pdef, Parameter p |
|
||||
p = def.getParameter()
|
||||
|
|
||||
@@ -320,9 +320,7 @@ class Dereference extends G::DereferenceableExpr {
|
||||
not p.getAnnotatedType().isNullableRefType()
|
||||
or
|
||||
p.fromSource() and
|
||||
exists(
|
||||
Ssa::ParameterDefinition def, AssignableDefinitions::ImplicitParameterDefinition pdef
|
||||
|
|
||||
exists(SsaParameterInit def, AssignableDefinitions::ImplicitParameterDefinition pdef |
|
||||
p = def.getParameter()
|
||||
|
|
||||
p.getUnboundDeclaration() = pdef.getParameter() and
|
||||
|
||||
@@ -553,6 +553,9 @@ module Ssa {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* DEPRECATED: Use `SsaParameterInit` instead.
|
||||
*/
|
||||
deprecated class ImplicitParameterDefinition = ParameterDefinition;
|
||||
|
||||
final class ParameterDefinition = SsaImpl::ParameterDefinitionImpl;
|
||||
|
||||
@@ -1302,12 +1302,6 @@ private module NearestLocationInputParamAfterCallable implements NearestLocation
|
||||
}
|
||||
|
||||
private module ParameterNodes {
|
||||
pragma[nomagic]
|
||||
private predicate ssaParamDef(Ssa::ParameterDefinition ssaDef, Parameter p, Location l) {
|
||||
p = ssaDef.getParameter() and
|
||||
l = ssaDef.getLocation()
|
||||
}
|
||||
|
||||
private module NearestLocationInputParamBeforeCallable implements NearestLocationInputSig {
|
||||
class C = Parameter;
|
||||
|
||||
@@ -1358,11 +1352,9 @@ private module ParameterNodes {
|
||||
}
|
||||
|
||||
/** Gets the SSA definition corresponding to this parameter, if any. */
|
||||
Ssa::ParameterDefinition getSsaDefinition() {
|
||||
exists(Parameter p, Location l |
|
||||
l = this.getParameterLocation(p) and
|
||||
ssaParamDef(result, p, l)
|
||||
)
|
||||
SsaParameterInit getSsaDefinition() {
|
||||
result.getParameter() = parameter and
|
||||
result.getBasicBlock() = callable.getABasicBlock()
|
||||
}
|
||||
|
||||
override predicate isParameterOf(DataFlowCallable c, ParameterPosition pos) {
|
||||
|
||||
@@ -1017,7 +1017,7 @@ private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInpu
|
||||
predicate ssaDefHasSource(WriteDefinition def) {
|
||||
// exclude flow directly from RHS to SSA definition, as we instead want to
|
||||
// go from RHS to matching assignable definition, and from there to SSA definition
|
||||
def instanceof Ssa::ParameterDefinition
|
||||
def instanceof SsaParameterInit
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -24,7 +24,7 @@ private LocalScopeVariableRead getAReachableUncertainRead(
|
||||
AssignableDefinitions::ImplicitParameterDefinition p
|
||||
) {
|
||||
exists(SsaDefinition ssaDef |
|
||||
p.getParameter() = ssaDef.getAnUltimateDefinition().(Ssa::ParameterDefinition).getParameter()
|
||||
p.getParameter() = ssaDef.getAnUltimateDefinition().(SsaParameterInit).getParameter()
|
||||
|
|
||||
result = ssaDef.getARead()
|
||||
)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import csharp
|
||||
|
||||
from Ssa::SourceVariable v, Ssa::ParameterDefinition def
|
||||
from Ssa::SourceVariable v, SsaParameterInit def
|
||||
where v = def.getSourceVariable()
|
||||
select v, def, def.getParameter()
|
||||
|
||||
Reference in New Issue
Block a user