|
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