diff options
3 files changed, 6 insertions, 4 deletions
diff --git a/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h b/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h index 970b17b..702aaff 100644 --- a/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h +++ b/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h @@ -264,7 +264,8 @@ public: /// `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 index 4405324..a1b8139 100644 --- a/clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp +++ b/clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp @@ -342,7 +342,8 @@ BoolValue &DataflowAnalysisContext::buildAndSubstituteFlowConditionWithCache( return substituteBoolValue(*ConstraintsIt->second, SubstitutionsCache); } -void DataflowAnalysisContext::dumpFlowCondition(AtomicBoolValue &Token) { +void DataflowAnalysisContext::dumpFlowCondition(AtomicBoolValue &Token, + llvm::raw_ostream &OS) { llvm::DenseSet<BoolValue *> Constraints = {&Token}; llvm::DenseSet<AtomicBoolValue *> VisitedTokens; addTransitiveFlowConditionConstraints(Token, Constraints, VisitedTokens); @@ -350,7 +351,7 @@ void DataflowAnalysisContext::dumpFlowCondition(AtomicBoolValue &Token) { llvm::DenseMap<const AtomicBoolValue *, std::string> 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 index 46fb7bd..e3bde37 100644 --- a/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp +++ b/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp @@ -812,7 +812,7 @@ void Environment::dump(raw_ostream &OS) const { } OS << "FlowConditionToken:\n"; - DACtx->dumpFlowCondition(*FlowConditionToken); + DACtx->dumpFlowCondition(*FlowConditionToken, OS); } void Environment::dump() const { |