diff --git a/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h b/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h --- a/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h +++ b/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h @@ -264,7 +264,8 @@ /// `Val2` imposed by the flow condition. bool equivalentBoolValues(BoolValue &Val1, BoolValue &Val2); - LLVM_DUMP_METHOD void dumpFlowCondition(AtomicBoolValue &Token); + LLVM_DUMP_METHOD void dumpFlowCondition(AtomicBoolValue &Token, + llvm::raw_ostream &OS = llvm::dbgs()); /// Returns the `ControlFlowContext` registered for `F`, if any. Otherwise, /// returns null. diff --git a/clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp b/clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp --- a/clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp +++ b/clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp @@ -342,7 +342,8 @@ return substituteBoolValue(*ConstraintsIt->second, SubstitutionsCache); } -void DataflowAnalysisContext::dumpFlowCondition(AtomicBoolValue &Token) { +void DataflowAnalysisContext::dumpFlowCondition(AtomicBoolValue &Token, + llvm::raw_ostream &OS) { llvm::DenseSet Constraints = {&Token}; llvm::DenseSet VisitedTokens; addTransitiveFlowConditionConstraints(Token, Constraints, VisitedTokens); @@ -350,7 +351,7 @@ llvm::DenseMap AtomNames = { {&getBoolLiteralValue(false), "False"}, {&getBoolLiteralValue(true), "True"}}; - llvm::dbgs() << debugString(Constraints, AtomNames); + OS << debugString(Constraints, AtomNames); } const ControlFlowContext * diff --git a/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp b/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp --- a/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp +++ b/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp @@ -812,7 +812,7 @@ } OS << "FlowConditionToken:\n"; - DACtx->dumpFlowCondition(*FlowConditionToken); + DACtx->dumpFlowCondition(*FlowConditionToken, OS); } void Environment::dump() const {