Skip to content

Commit 6ecdf3f

Browse files
committed
C#: Replace Ssa::ImplicitParameterDefinition with SsaParameterInit.
1 parent 31e06bc commit 6ecdf3f

6 files changed

Lines changed: 11 additions & 18 deletions

File tree

csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ private predicate nonNullDef(SsaExplicitWrite def) {
126126
*/
127127
private predicate dereferenceAt(SsaDefinition def, Dereference d) { d = def.getARead() }
128128

129-
private predicate isMaybeNullArgument(Ssa::ParameterDefinition def, MaybeNullExpr arg) {
129+
private predicate isMaybeNullArgument(SsaParameterInit def, MaybeNullExpr arg) {
130130
exists(AssignableDefinitions::ImplicitParameterDefinition pdef, Parameter p |
131131
p = def.getParameter()
132132
|
@@ -320,9 +320,7 @@ class Dereference extends G::DereferenceableExpr {
320320
not p.getAnnotatedType().isNullableRefType()
321321
or
322322
p.fromSource() and
323-
exists(
324-
Ssa::ParameterDefinition def, AssignableDefinitions::ImplicitParameterDefinition pdef
325-
|
323+
exists(SsaParameterInit def, AssignableDefinitions::ImplicitParameterDefinition pdef |
326324
p = def.getParameter()
327325
|
328326
p.getUnboundDeclaration() = pdef.getParameter() and

csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -553,6 +553,9 @@ module Ssa {
553553
}
554554
}
555555

556+
/**
557+
* DEPRECATED: Use `SsaParameterInit` instead.
558+
*/
556559
deprecated class ImplicitParameterDefinition = ParameterDefinition;
557560

558561
final class ParameterDefinition = SsaImpl::ParameterDefinitionImpl;

csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1302,12 +1302,6 @@ private module NearestLocationInputParamAfterCallable implements NearestLocation
13021302
}
13031303

13041304
private module ParameterNodes {
1305-
pragma[nomagic]
1306-
private predicate ssaParamDef(Ssa::ParameterDefinition ssaDef, Parameter p, Location l) {
1307-
p = ssaDef.getParameter() and
1308-
l = ssaDef.getLocation()
1309-
}
1310-
13111305
private module NearestLocationInputParamBeforeCallable implements NearestLocationInputSig {
13121306
class C = Parameter;
13131307

@@ -1358,11 +1352,9 @@ private module ParameterNodes {
13581352
}
13591353

13601354
/** Gets the SSA definition corresponding to this parameter, if any. */
1361-
Ssa::ParameterDefinition getSsaDefinition() {
1362-
exists(Parameter p, Location l |
1363-
l = this.getParameterLocation(p) and
1364-
ssaParamDef(result, p, l)
1365-
)
1355+
SsaParameterInit getSsaDefinition() {
1356+
result.getParameter() = parameter and
1357+
result.getBasicBlock() = callable.getABasicBlock()
13661358
}
13671359

13681360
override predicate isParameterOf(DataFlowCallable c, ParameterPosition pos) {

csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1017,7 +1017,7 @@ private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInpu
10171017
predicate ssaDefHasSource(WriteDefinition def) {
10181018
// exclude flow directly from RHS to SSA definition, as we instead want to
10191019
// go from RHS to matching assignable definition, and from there to SSA definition
1020-
def instanceof Ssa::ParameterDefinition
1020+
def instanceof SsaParameterInit
10211021
}
10221022

10231023
/**

csharp/ql/test/library-tests/dataflow/defuse/parameterUseEquivalence.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ private LocalScopeVariableRead getAReachableUncertainRead(
2424
AssignableDefinitions::ImplicitParameterDefinition p
2525
) {
2626
exists(SsaDefinition ssaDef |
27-
p.getParameter() = ssaDef.getAnUltimateDefinition().(Ssa::ParameterDefinition).getParameter()
27+
p.getParameter() = ssaDef.getAnUltimateDefinition().(SsaParameterInit).getParameter()
2828
|
2929
result = ssaDef.getARead()
3030
)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import csharp
22

3-
from Ssa::SourceVariable v, Ssa::ParameterDefinition def
3+
from Ssa::SourceVariable v, SsaParameterInit def
44
where v = def.getSourceVariable()
55
select v, def, def.getParameter()

0 commit comments

Comments
 (0)