File tree Expand file tree Collapse file tree
lib/semmle/code/csharp/dataflow
test/library-tests/dataflow Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -126,7 +126,7 @@ private predicate nonNullDef(SsaExplicitWrite def) {
126126 */
127127private predicate dereferenceAt ( SsaDefinition def , Dereference d ) { d = def .getARead ( ) }
128128
129- private predicate isMaybeNullArgument ( Ssa :: ImplicitParameterDefinition def , MaybeNullExpr arg ) {
129+ private predicate isMaybeNullArgument ( SsaParameterInit def , MaybeNullExpr arg ) {
130130 exists ( AssignableDefinitions:: ImplicitParameterDefinition pdef , Parameter p |
131131 p = def .getParameter ( )
132132 |
@@ -177,7 +177,7 @@ private predicate hasMultipleParamsArguments(Call c) {
177177 )
178178}
179179
180- private predicate isNullDefaultArgument ( Ssa :: ImplicitParameterDefinition def , AlwaysNullExpr arg ) {
180+ private predicate isNullDefaultArgument ( SsaParameterInit def , AlwaysNullExpr arg ) {
181181 exists ( AssignableDefinitions:: ImplicitParameterDefinition pdef , Parameter p |
182182 p = def .getParameter ( )
183183 |
@@ -334,10 +334,7 @@ class Dereference extends G::DereferenceableExpr {
334334 not p .getAnnotatedType ( ) .isNullableRefType ( )
335335 or
336336 p .fromSource ( ) and
337- exists (
338- Ssa:: ImplicitParameterDefinition def ,
339- AssignableDefinitions:: ImplicitParameterDefinition pdef
340- |
337+ exists ( SsaParameterInit def , AssignableDefinitions:: ImplicitParameterDefinition pdef |
341338 p = def .getParameter ( )
342339 |
343340 p .getUnboundDeclaration ( ) = pdef .getParameter ( ) and
Original file line number Diff line number Diff line change @@ -570,10 +570,12 @@ module Ssa {
570570 }
571571
572572 /**
573+ * DEPRECATED: Use `SsaParameterInit` instead.
574+ *
573575 * An SSA definition representing the implicit initialization of a parameter
574576 * at the beginning of a callable.
575577 */
576- class ImplicitParameterDefinition extends ImplicitEntryDefinition {
578+ deprecated class ImplicitParameterDefinition extends ImplicitEntryDefinition {
577579 private Parameter p ;
578580
579581 ImplicitParameterDefinition ( ) {
Original file line number Diff line number Diff line change @@ -1287,12 +1287,6 @@ private module NearestLocationInputParamAfterCallable implements NearestLocation
12871287}
12881288
12891289private module ParameterNodes {
1290- pragma [ nomagic]
1291- private predicate ssaParamDef ( Ssa:: ImplicitParameterDefinition ssaDef , Parameter p , Location l ) {
1292- p = ssaDef .getParameter ( ) and
1293- l = ssaDef .getLocation ( )
1294- }
1295-
12961290 private module NearestLocationInputParamBeforeCallable implements NearestLocationInputSig {
12971291 class C = Parameter ;
12981292
@@ -1343,11 +1337,9 @@ private module ParameterNodes {
13431337 }
13441338
13451339 /** Gets the SSA definition corresponding to this parameter, if any. */
1346- Ssa:: ImplicitParameterDefinition getSsaDefinition ( ) {
1347- exists ( Parameter p , Location l |
1348- l = this .getParameterLocation ( p ) and
1349- ssaParamDef ( result , p , l )
1350- )
1340+ SsaParameterInit getSsaDefinition ( ) {
1341+ result .getParameter ( ) = parameter and
1342+ result .getBasicBlock ( ) = callable .getABasicBlock ( )
13511343 }
13521344
13531345 override predicate isParameterOf ( DataFlowCallable c , ParameterPosition pos ) {
Original file line number Diff line number Diff line change @@ -1002,7 +1002,7 @@ private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInpu
10021002 predicate ssaDefHasSource ( WriteDefinition def ) {
10031003 // exclude flow directly from RHS to SSA definition, as we instead want to
10041004 // go from RHS to matching assignable definition, and from there to SSA definition
1005- def instanceof Ssa :: ImplicitParameterDefinition
1005+ def instanceof SsaParameterInit
10061006 }
10071007
10081008 /**
Original file line number Diff line number Diff line change @@ -24,8 +24,7 @@ private LocalScopeVariableRead getAReachableUncertainRead(
2424 AssignableDefinitions:: ImplicitParameterDefinition p
2525) {
2626 exists ( SsaDefinition ssaDef |
27- p .getParameter ( ) =
28- ssaDef .getAnUltimateDefinition ( ) .( Ssa:: ImplicitParameterDefinition ) .getParameter ( )
27+ p .getParameter ( ) = ssaDef .getAnUltimateDefinition ( ) .( SsaParameterInit ) .getParameter ( )
2928 |
3029 result = ssaDef .getARead ( )
3130 )
Original file line number Diff line number Diff line change 11import csharp
22
3- from Ssa:: SourceVariable v , Ssa :: ImplicitParameterDefinition def
3+ from Ssa:: SourceVariable v , SsaParameterInit def
44where v = def .getSourceVariable ( )
55select v , def , def .getParameter ( )
You can’t perform that action at this time.
0 commit comments