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 @@ -1031,6 +1031,11 @@ module Make<LocationSig Location, InputSig<Location> Input> {
1031
1031
1032
1032
module ReturnImplies = ImpliesTC< returnGuard / 2 > ;
1033
1033
1034
+ pragma [ nomagic]
1035
+ private predicate directlyControlsReturn ( Guard guard , GuardValue val , ReturnExpr ret ) {
1036
+ guard .directlyValueControls ( ret .getBasicBlock ( ) , val )
1037
+ }
1038
+
1034
1039
/**
1035
1040
* Holds if `ret` is a return expression in a non-overridable method that
1036
1041
* on a return value of `retval` allows the conclusion that the `ppos`th
@@ -1044,7 +1049,7 @@ module Make<LocationSig Location, InputSig<Location> Input> {
1044
1049
parameterDefinition ( m .getParameter ( ppos ) , param )
1045
1050
|
1046
1051
exists ( Guard g0 , GuardValue v0 |
1047
- g0 . directlyValueControls ( ret . getBasicBlock ( ) , v0 ) and
1052
+ directlyControlsReturn ( g0 , v0 , ret ) and
1048
1053
BranchImplies:: ssaControls ( param , val , g0 , v0 ) and
1049
1054
relevantReturnValue ( m , retval )
1050
1055
)
You can’t perform that action at this time.
0 commit comments