Skip to content

Commit 3801b88

Browse files
committed
DataFlow: Don't become overlay informed if the flow is diff informed but no diff.
1 parent 60f08c5 commit 3801b88

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

shared/dataflow/codeql/dataflow/internal/DataFlowImplStage1.qll

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -179,9 +179,8 @@ module MakeImplStage1<LocationSig Location, InputSig<Location> Lang> {
179179
// configuration. In that case, the results of this configuration
180180
// are typically in the same file as the final alert.
181181
if
182-
Config::observeDiffInformedIncrementalMode() and
183-
AlertFiltering::diffInformationAvailable()
184-
then AlertFiltering::locationIsInDiff(Config::getASelectedSourceLocation(source))
182+
Config::observeDiffInformedIncrementalMode()
183+
then AlertFiltering::diffInformationAvailable() implies AlertFiltering::locationIsInDiff(Config::getASelectedSourceLocation(source))
185184
else (
186185
// If we are in base-only global evaluation, do not filter out any sources.
187186
not isEvaluatingInOverlay()
@@ -200,15 +199,18 @@ module MakeImplStage1<LocationSig Location, InputSig<Location> Lang> {
200199
Config::isSink(sink)
201200
) and
202201
// See the comments in `isFilteredSource` for the reasoning behind the following.
203-
if
204-
Config::observeDiffInformedIncrementalMode() and
205-
AlertFiltering::diffInformationAvailable()
206-
then AlertFiltering::locationIsInDiff(Config::getASelectedSinkLocation(sink))
202+
if
203+
Config::observeDiffInformedIncrementalMode()
204+
then AlertFiltering::diffInformationAvailable() implies AlertFiltering::locationIsInDiff(Config::getASelectedSinkLocation(sink))
207205
else (
206+
// If we are in base-only global evaluation, do not filter out any sources.
208207
not isEvaluatingInOverlay()
209208
or
209+
// If we are in global evaluation with an overlay present, restrict
210+
// sources to those visible in the overlay or
210211
isOverlayNode(sink)
211212
)
213+
212214
}
213215

214216
private predicate hasFilteredSource() { isFilteredSource(_) }

0 commit comments

Comments
 (0)