@@ -2069,8 +2069,8 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
20692069
20702070 pragma [ nomagic]
20712071 private predicate fwdFlowRetFromArg (
2072- RetNodeEx ret , FlowState state , CcCall ccc , SummaryCtxSome summaryCtx , ApApprox argApa ,
2073- Typ t , Ap ap , ApApprox apa , TypOption stored
2072+ RetNodeEx ret , FlowState state , CcCall ccc , SummaryCtxSome summaryCtx , Typ t , Ap ap ,
2073+ ApApprox apa , TypOption stored
20742074 ) {
20752075 exists ( ReturnKindExt kind , ParamNodeEx p , Ap argAp |
20762076 instanceofCcCall ( ccc ) and
@@ -2080,7 +2080,6 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
20802080 not outBarrier ( ret , state ) and
20812081 kind = ret .getKind ( ) and
20822082 parameterFlowThroughAllowed ( p , kind ) and
2083- argApa = getApprox ( argAp ) and
20842083 PrevStage:: returnMayFlowThrough ( ret , kind )
20852084 )
20862085 }
@@ -2089,9 +2088,9 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
20892088 private predicate fwdFlowThrough0 (
20902089 DataFlowCall call , ArgNodeEx arg , Cc cc , FlowState state , CcCall ccc ,
20912090 SummaryCtx summaryCtx , Typ t , Ap ap , ApApprox apa , TypOption stored , RetNodeEx ret ,
2092- SummaryCtxSome innerSummaryCtx , ApApprox innerArgApa
2091+ SummaryCtxSome innerSummaryCtx
20932092 ) {
2094- fwdFlowRetFromArg ( ret , state , ccc , innerSummaryCtx , innerArgApa , t , ap , apa , stored ) and
2093+ fwdFlowRetFromArg ( ret , state , ccc , innerSummaryCtx , t , ap , apa , stored ) and
20952094 fwdFlowIsEntered ( call , arg , cc , ccc , summaryCtx , innerSummaryCtx )
20962095 }
20972096
@@ -2100,7 +2099,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
21002099 DataFlowCall call , Cc cc , FlowState state , CcCall ccc , SummaryCtx summaryCtx , Typ t ,
21012100 Ap ap , ApApprox apa , TypOption stored , RetNodeEx ret
21022101 ) {
2103- fwdFlowThrough0 ( call , _, cc , state , ccc , summaryCtx , t , ap , apa , stored , ret , _, _ )
2102+ fwdFlowThrough0 ( call , _, cc , state , ccc , summaryCtx , t , ap , apa , stored , ret , _)
21042103 }
21052104
21062105 pragma [ nomagic]
@@ -2141,21 +2140,20 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
21412140
21422141 pragma [ nomagic]
21432142 private predicate returnFlowsThrough0 (
2144- DataFlowCall call , FlowState state , CcCall ccc , Ap ap , ApApprox apa , RetNodeEx ret ,
2145- SummaryCtxSome innerSummaryCtx , ApApprox innerArgApa
2143+ DataFlowCall call , FlowState state , CcCall ccc , Ap ap , RetNodeEx ret ,
2144+ SummaryCtxSome innerSummaryCtx
21462145 ) {
2147- fwdFlowThrough0 ( call , _, _, state , ccc , _, _, ap , apa , _, ret , innerSummaryCtx ,
2148- innerArgApa )
2146+ fwdFlowThrough0 ( call , _, _, state , ccc , _, _, ap , _, _, ret , innerSummaryCtx )
21492147 }
21502148
21512149 pragma [ nomagic]
21522150 private predicate returnFlowsThrough (
21532151 RetNodeEx ret , ReturnPosition pos , FlowState state , CcCall ccc , ParamNodeEx p , Typ argT ,
2154- Ap argAp , ApApprox argApa , TypOption argStored , Ap ap
2152+ Ap argAp , TypOption argStored , Ap ap
21552153 ) {
21562154 exists ( DataFlowCall call , boolean allowsFieldFlow |
2157- returnFlowsThrough0 ( call , state , ccc , ap , _ , ret ,
2158- TSummaryCtxSome ( p , _, argT , argAp , argStored ) , argApa ) and
2155+ returnFlowsThrough0 ( call , state , ccc , ap , ret ,
2156+ TSummaryCtxSome ( p , _, argT , argAp , argStored ) ) and
21592157 flowThroughOutOfCall ( call , ccc , ret , _, allowsFieldFlow ) and
21602158 pos = ret .getReturnPosition ( ) and
21612159 if allowsFieldFlow = false then ap instanceof ApNil else any ( )
@@ -2168,7 +2166,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
21682166 ) {
21692167 exists ( Typ argT , TypOption argStored , boolean emptyArgAp |
21702168 returnFlowsThrough ( _, _, _, _, pragma [ only_bind_into ] ( p ) , pragma [ only_bind_into ] ( argT ) ,
2171- pragma [ only_bind_into ] ( argAp ) , _ , pragma [ only_bind_into ] ( argStored ) , ap ) and
2169+ pragma [ only_bind_into ] ( argAp ) , pragma [ only_bind_into ] ( argStored ) , ap ) and
21722170 flowIntoCallApaTaken ( call , _, pragma [ only_bind_into ] ( arg ) , p , emptyArgAp ) and
21732171 fwdFlow ( arg , _, _, _, pragma [ only_bind_into ] ( argT ) , pragma [ only_bind_into ] ( argAp ) , _,
21742172 pragma [ only_bind_into ] ( argStored ) ) and
@@ -2274,7 +2272,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
22742272 // flow out of a callable
22752273 exists ( ReturnPosition pos |
22762274 revFlowOut ( _, node , pos , state , _, _, _, ap ) and
2277- if returnFlowsThrough ( node , pos , state , _, _, _, _, _, _ , ap )
2275+ if returnFlowsThrough ( node , pos , state , _, _, _, _, _, ap )
22782276 then (
22792277 returnCtx = TReturnCtxMaybeFlowThrough ( pos ) and
22802278 returnAp = apSome ( ap )
@@ -2439,7 +2437,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
24392437 ) {
24402438 exists ( RetNodeEx ret , FlowState state , CcCall ccc |
24412439 revFlowOut ( call , ret , pos , state , returnCtx , _, returnAp , ap ) and
2442- returnFlowsThrough ( ret , pos , state , ccc , _, _, _, _, _ , ap ) and
2440+ returnFlowsThrough ( ret , pos , state , ccc , _, _, _, _, ap ) and
24432441 matchesCall ( ccc , call )
24442442 )
24452443 }
@@ -2508,7 +2506,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
25082506 pragma [ nomagic]
25092507 private predicate parameterMayFlowThroughAp ( ParamNodeEx p , Ap ap ) {
25102508 exists ( ReturnPosition pos |
2511- returnFlowsThrough ( _, pos , _, _, p , _, ap , _, _, _ ) and
2509+ returnFlowsThrough ( _, pos , _, _, p , _, ap , _, _) and
25122510 parameterFlowsThroughRev ( p , ap , pos , _)
25132511 )
25142512 }
@@ -2545,7 +2543,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
25452543 pragma [ nomagic]
25462544 predicate returnMayFlowThrough ( RetNodeEx ret , ReturnKindExt kind ) {
25472545 exists ( ParamNodeEx p , ReturnPosition pos , Ap argAp , Ap ap |
2548- returnFlowsThrough ( ret , pos , _, _, p , _, argAp , _, _ , ap ) and
2546+ returnFlowsThrough ( ret , pos , _, _, p , _, argAp , _, ap ) and
25492547 parameterFlowsThroughRev ( p , argAp , pos , ap ) and
25502548 kind = pos .getKind ( )
25512549 )
@@ -3133,11 +3131,11 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
31333131 pragma [ nomagic]
31343132 private predicate fwdFlowThroughStep0 (
31353133 DataFlowCall call , ArgNodeEx arg , Cc cc , FlowState state , CcCall ccc ,
3136- SummaryCtx summaryCtx , Typ t , Ap ap , ApApprox apa , TypOption stored , RetNodeEx ret ,
3134+ SummaryCtx summaryCtx , Typ t , Ap ap , TypOption stored , RetNodeEx ret ,
31373135 SummaryCtxSome innerSummaryCtx
31383136 ) {
3139- fwdFlowThrough0 ( call , arg , cc , state , ccc , summaryCtx , t , ap , apa , stored , ret ,
3140- innerSummaryCtx , _ )
3137+ fwdFlowThrough0 ( call , arg , cc , state , ccc , summaryCtx , t , ap , _ , stored , ret ,
3138+ innerSummaryCtx )
31413139 }
31423140
31433141 bindingset [ node, state, cc, summaryCtx, t, ap, stored]
@@ -3162,14 +3160,14 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
31623160 pragma [ nomagic]
31633161 private predicate fwdFlowThroughStep1 (
31643162 PathNodeImpl pn1 , PathNodeImpl pn2 , PathNodeImpl pn3 , DataFlowCall call , Cc cc ,
3165- FlowState state , CcCall ccc , SummaryCtx summaryCtx , Typ t , Ap ap , ApApprox apa ,
3166- TypOption stored , RetNodeEx ret
3163+ FlowState state , CcCall ccc , SummaryCtx summaryCtx , Typ t , Ap ap , TypOption stored ,
3164+ RetNodeEx ret
31673165 ) {
31683166 exists (
31693167 FlowState state0 , ArgNodeEx arg , SummaryCtxSome innerSummaryCtx , ParamNodeEx p ,
31703168 Typ innerArgT , Ap innerArgAp , TypOption innerArgStored
31713169 |
3172- fwdFlowThroughStep0 ( call , arg , cc , state , ccc , summaryCtx , t , ap , apa , stored , ret ,
3170+ fwdFlowThroughStep0 ( call , arg , cc , state , ccc , summaryCtx , t , ap , stored , ret ,
31733171 innerSummaryCtx ) and
31743172 innerSummaryCtx = TSummaryCtxSome ( p , state0 , innerArgT , innerArgAp , innerArgStored ) and
31753173 pn1 = mkPathNode ( arg , state0 , cc , summaryCtx , innerArgT , innerArgAp , innerArgStored ) and
@@ -3186,7 +3184,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
31863184 FlowState state , SummaryCtx summaryCtx , Typ t , Ap ap , TypOption stored
31873185 ) {
31883186 exists ( DataFlowCall call , CcCall ccc , RetNodeEx ret , boolean allowsFieldFlow |
3189- fwdFlowThroughStep1 ( pn1 , pn2 , pn3 , call , cc , state , ccc , summaryCtx , t , ap , _ , stored ,
3187+ fwdFlowThroughStep1 ( pn1 , pn2 , pn3 , call , cc , state , ccc , summaryCtx , t , ap , stored ,
31903188 ret ) and
31913189 flowThroughOutOfCall ( call , ccc , ret , node , allowsFieldFlow ) and
31923190 not inBarrier ( node , state ) and
0 commit comments