Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit bbd6003

Browse files
committed
C#: Replace references to old BaseSSA classes.
1 parent 145d324 commit bbd6003

4 files changed

Lines changed: 7 additions & 54 deletions

File tree

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

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -133,53 +133,4 @@ module BaseSsa {
133133
module Ssa = SsaImpl::MakeSsa<SsaInput>;
134134

135135
import Ssa
136-
137-
class Definition extends SsaImpl::Definition {
138-
final AssignableRead getARead() {
139-
exists(BasicBlock bb, int i |
140-
SsaImpl::ssaDefReachesRead(_, this, bb, i) and
141-
result.getControlFlowNode() = bb.getNode(i)
142-
)
143-
}
144-
145-
final AssignableDefinition getDefinition() {
146-
exists(BasicBlock bb, int i, SsaImplInput::SourceVariable v |
147-
this.definesAt(v, bb, i) and
148-
definitionAt(result, bb, i, v)
149-
)
150-
}
151-
152-
final predicate isImplicitEntryDefinition(SsaImplInput::SourceVariable v) {
153-
exists(BasicBlock bb |
154-
this.definesAt(v, bb, -1) and
155-
entryDef(_, bb, v)
156-
)
157-
}
158-
159-
private Definition getAPhiInputOrPriorDefinition() {
160-
result = this.(PhiNode).getAnInput() or
161-
SsaImpl::uncertainWriteDefinitionInput(this, result)
162-
}
163-
164-
final Definition getAnUltimateDefinition() {
165-
result = this.getAPhiInputOrPriorDefinition*() and
166-
not result instanceof PhiNode
167-
}
168-
169-
override Location getLocation() {
170-
result = this.getDefinition().getLocation()
171-
or
172-
exists(Callable c, BasicBlock bb, SsaImplInput::SourceVariable v |
173-
this.definesAt(v, bb, -1) and
174-
entryDef(c, bb, v) and
175-
result = c.getLocation()
176-
)
177-
}
178-
}
179-
180-
class PhiNode extends SsaImpl::PhiNode, Definition {
181-
override Location getLocation() { result = this.getBasicBlock().getLocation() }
182-
183-
final Definition getAnInput() { SsaImpl::phiHasInputFromBlock(this, result, _) }
184-
}
185136
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ module Steps {
1515
* Gets a read that may read the value assigned at definition `def`.
1616
*/
1717
private AssignableRead getARead(AssignableDefinition def) {
18-
exists(BaseSsa::Definition ssaDef |
19-
ssaDef.getAnUltimateDefinition().getDefinition() = def and
18+
exists(BaseSsa::SsaDefinition ssaDef |
19+
ssaDef.getAnUltimateDefinition().(BaseSsa::SsaExplicitWrite).getDefinition() = def and
2020
result = ssaDef.getARead()
2121
)
2222
or

csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -355,8 +355,8 @@ private module Internal {
355355
1 < strictcount(this.getADynamicTarget().getUnboundDeclaration()) and
356356
c = this.getCall().getEnclosingCallable().getUnboundDeclaration() and
357357
(
358-
exists(BaseSsa::Definition def, Parameter p |
359-
def.isImplicitEntryDefinition(p) and
358+
exists(BaseSsa::SsaParameterInit def, Parameter p |
359+
def.getParameter() = p and
360360
this.getSyntheticQualifier() = def.getARead() and
361361
p.getPosition() = i and
362362
c.getAParameter() = p and

csharp/ql/test/library-tests/dataflow/ssa/BaseSsaConsistency.ql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import csharp
22
import semmle.code.csharp.dataflow.internal.BaseSSA
33

4-
from AssignableRead ar, BaseSsa::Definition ssaDef, AssignableDefinition def, LocalScopeVariable v
4+
from
5+
AssignableRead ar, BaseSsa::SsaExplicitWrite ssaDef, AssignableDefinition def,
6+
LocalScopeVariable v
57
where
68
ar = ssaDef.getARead() and
79
def = ssaDef.getDefinition() and

0 commit comments

Comments
 (0)