Author: Sam McCall Date: 2023-03-22T10:57:21+01:00 New Revision: ee2cd606abd98380bc71974863354a0d54ccfab3
URL: https://github.com/llvm/llvm-project/commit/ee2cd606abd98380bc71974863354a0d54ccfab3 DIFF: https://github.com/llvm/llvm-project/commit/ee2cd606abd98380bc71974863354a0d54ccfab3.diff LOG: [dataflow] Log flow condition to the correct stream. Differential Revision: https://reviews.llvm.org/D146527 Added: Modified: clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp Removed: ################################################################################ diff --git a/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h b/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h index 970b17be224db..702aaff9c7e71 100644 --- a/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h +++ b/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h @@ -264,7 +264,8 @@ class DataflowAnalysisContext { /// `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 44053246bb744..a1b813982502b 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 46fb7bd2fd5e9..e3bde37ea68f7 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 { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits