|
5 | 5 |
|
6 | 6 | private import DataFlow as DF |
7 | 7 | private import internal.DataFlowImpl |
| 8 | +private import internal.DataFlowImplStage1 |
8 | 9 | private import codeql.util.Location |
9 | 10 |
|
10 | 11 | /** |
@@ -47,6 +48,7 @@ module TaintFlowMake< |
47 | 48 | private import TaintTrackingLang |
48 | 49 | private import DF::DataFlowMake<Location, DataFlowLang> as DataFlow |
49 | 50 | private import MakeImpl<Location, DataFlowLang> as DataFlowInternal |
| 51 | + private import MakeImplStage1<Location, DataFlowLang> as DataFlowInternalStage1 |
50 | 52 |
|
51 | 53 | private module AddTaintDefaults<DataFlowInternal::FullStateConfigSig Config> implements |
52 | 54 | DataFlowInternal::FullStateConfigSig |
@@ -94,7 +96,13 @@ module TaintFlowMake< |
94 | 96 | import AddTaintDefaults<Config0> |
95 | 97 | } |
96 | 98 |
|
97 | | - import DataFlowInternal::Impl<C> |
| 99 | + private module Stage1 = DataFlowInternalStage1::ImplStage1<C>; |
| 100 | + |
| 101 | + import Stage1::PartialFlow |
| 102 | + |
| 103 | + private module Flow = DataFlowInternal::Impl<C, Stage1::Stage1NoState>; |
| 104 | + |
| 105 | + import Flow |
98 | 106 | } |
99 | 107 |
|
100 | 108 | /** |
@@ -122,7 +130,13 @@ module TaintFlowMake< |
122 | 130 | import AddTaintDefaults<Config0> |
123 | 131 | } |
124 | 132 |
|
125 | | - import DataFlowInternal::Impl<C> |
| 133 | + private module Stage1 = DataFlowInternalStage1::ImplStage1<C>; |
| 134 | + |
| 135 | + import Stage1::PartialFlow |
| 136 | + |
| 137 | + private module Flow = DataFlowInternal::Impl<C, Stage1::Stage1NoState>; |
| 138 | + |
| 139 | + import Flow |
126 | 140 | } |
127 | 141 |
|
128 | 142 | signature int speculationLimitSig(); |
@@ -218,7 +232,13 @@ module TaintFlowMake< |
218 | 232 | import AddTaintDefaults<AddSpeculativeTaintSteps<Config0, speculationLimit/0>> |
219 | 233 | } |
220 | 234 |
|
221 | | - import DataFlowInternal::Impl<C> |
| 235 | + private module Stage1 = DataFlowInternalStage1::ImplStage1<C>; |
| 236 | + |
| 237 | + import Stage1::PartialFlow |
| 238 | + |
| 239 | + private module Flow = DataFlowInternal::Impl<C, Stage1::Stage1NoState>; |
| 240 | + |
| 241 | + import Flow |
222 | 242 | } |
223 | 243 |
|
224 | 244 | /** |
@@ -250,6 +270,12 @@ module TaintFlowMake< |
250 | 270 | import AddTaintDefaults<AddSpeculativeTaintSteps<Config0, speculationLimit/0>> |
251 | 271 | } |
252 | 272 |
|
253 | | - import DataFlowInternal::Impl<C> |
| 273 | + private module Stage1 = DataFlowInternalStage1::ImplStage1<C>; |
| 274 | + |
| 275 | + import Stage1::PartialFlow |
| 276 | + |
| 277 | + private module Flow = DataFlowInternal::Impl<C, Stage1::Stage1NoState>; |
| 278 | + |
| 279 | + import Flow |
254 | 280 | } |
255 | 281 | } |
0 commit comments