File tree Expand file tree Collapse file tree 1 file changed +5
-4
lines changed
csharp/ql/src/semmle/code/csharp/controlflow Expand file tree Collapse file tree 1 file changed +5
-4
lines changed Original file line number Diff line number Diff line change @@ -1058,8 +1058,10 @@ module Internal {
1058
1058
conditionalAssign ( guard , vGuard , def , vDef .getAnExpr ( ) )
1059
1059
}
1060
1060
1061
- private predicate relevantEq ( PreSsa:: Definition def , AbstractValue v ) {
1062
- conditionalAssignVal ( _, _, def , v )
1061
+ pragma [ noinline]
1062
+ private predicate relevantEq ( PreSsa:: Definition def , AbstractValue v , AssignableRead ar ) {
1063
+ conditionalAssignVal ( _, _, def , v ) and
1064
+ ar = def .getARead ( )
1063
1065
}
1064
1066
1065
1067
/**
@@ -1156,8 +1158,7 @@ module Internal {
1156
1158
private predicate guardImpliesNotEqual (
1157
1159
Expr guard , AbstractValue vGuard , PreSsa:: Definition def , AbstractValue vDef
1158
1160
) {
1159
- relevantEq ( def , vDef ) and
1160
- exists ( AssignableRead ar | ar = def .getARead ( ) |
1161
+ exists ( AssignableRead ar | relevantEq ( def , vDef , ar ) |
1161
1162
// For example:
1162
1163
// if (de == null); vGuard = TBooleanValue(false); vDef = TNullValue(true)
1163
1164
// but not
You can’t perform that action at this time.
0 commit comments