@@ -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 }
@@ -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