@@ -1832,7 +1832,9 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
18321832 cons = traceCons ( c , tail )
18331833 or
18341834 exists ( ApTrace cons0 |
1835- fwdFlowConsCand ( t2 , cons0 , c , t1 , tail ) and
1835+ // fwdFlowConsCand(t2, cons0, c, t1, tail) and
1836+ fwdFlowStore ( _, t1 , tail , _, c , t2 , _, _, _, _, _) and
1837+ cons0 = traceCons ( c , tail ) and
18361838 fwdFlowApRepr ( cons , cons0 )
18371839 )
18381840 }
@@ -3363,7 +3365,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
33633365 bindingset [ p, state, t, ap, stored]
33643366 pragma [ inline_late]
33653367 private SummaryCtxSome mkSummaryCtxSome (
3366- ParamNodeEx p , FlowState state , Typ t , Ap ap , TypOption stored
3368+ ParamNodeEx p , FlowState state , Typ t , ApTrace ap , TypOption stored
33673369 ) {
33683370 result = TSummaryCtxSome ( p , state , t , ap , stored )
33693371 }
@@ -4051,6 +4053,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
40514053
40524054 class ApNil = ApproxAccessPathFrontNil ;
40534055
4056+ // class ApTrace = Ap;
40544057 class ApTrace = ApproxAccessPathFrontTrace ;
40554058
40564059 class ApTraceNil = ApNil ;
@@ -4060,6 +4063,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
40604063 Typ getTyp ( DataFlowType t ) { any ( ) }
40614064
40624065 // Ap apCons(Content c, Ap tail) { result.getAHead() = c and exists(tail) }
4066+ // ApTrace traceCons(Content c, ApTrace tail) { result.getAHead() = c and exists(tail) }
40634067 bindingset [ c, tail]
40644068 ApTrace traceCons ( Content c , ApTrace tail ) { result .isApproxConsOf ( c ) and exists ( tail ) }
40654069
@@ -4069,6 +4073,9 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
40694073 result .isApproxTailOf ( c )
40704074 }
40714075
4076+ // ApTrace traceTail(Content c, ApTrace cons) {
4077+ // cons = apCons(c, result) and not result instanceof ApNil
4078+ // }
40724079 bindingset [ c, tail]
40734080 Ap apCons ( Content c , Ap tail ) { result .isApproxConsOf ( c ) and exists ( tail ) }
40744081
@@ -4084,6 +4091,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
40844091 pragma [ noinline]
40854092 ApHeadContent getTailHeadContent ( ApTrace ap ) { ap .isTailOf ( result ) }
40864093
4094+ // ApHeadContent getTailHeadContent(ApTrace ap) { none() }
40874095 predicate projectToHeadContent = getContentApproxCached / 1 ;
40884096
40894097 private module CallContextSensitivityInput implements CallContextSensitivityInputSig {
0 commit comments