File tree Expand file tree Collapse file tree 1 file changed +6
-1
lines changed
shared/controlflow/codeql/controlflow Expand file tree Collapse file tree 1 file changed +6
-1
lines changed Original file line number Diff line number Diff line change @@ -1038,6 +1038,11 @@ module Make<LocationSig Location, InputSig<Location> Input> {
1038
1038
1039
1039
module ReturnImplies = ImpliesTC< returnGuard / 2 > ;
1040
1040
1041
+ pragma [ nomagic]
1042
+ private predicate directlyControlsReturn ( Guard guard , GuardValue val , ReturnExpr ret ) {
1043
+ guard .directlyValueControls ( ret .getBasicBlock ( ) , val )
1044
+ }
1045
+
1041
1046
/**
1042
1047
* Holds if `ret` is a return expression in a non-overridable method that
1043
1048
* on a return value of `retval` allows the conclusion that the `ppos`th
@@ -1051,7 +1056,7 @@ module Make<LocationSig Location, InputSig<Location> Input> {
1051
1056
parameterDefinition ( m .getParameter ( ppos ) , param )
1052
1057
|
1053
1058
exists ( Guard g0 , GuardValue v0 |
1054
- g0 . directlyValueControls ( ret . getBasicBlock ( ) , v0 ) and
1059
+ directlyControlsReturn ( g0 , v0 , ret ) and
1055
1060
BranchImplies:: ssaControls ( param , val , g0 , v0 ) and
1056
1061
relevantReturnValue ( m , retval )
1057
1062
)
You can’t perform that action at this time.
0 commit comments