diff options
-rw-r--r-- | clang/Analysis/GRExprEngine.cpp | 7 | ||||
-rw-r--r-- | clang/include/clang/Analysis/PathSensitive/GRTransferFuncs.h | 8 |
2 files changed, 11 insertions, 4 deletions
diff --git a/clang/Analysis/GRExprEngine.cpp b/clang/Analysis/GRExprEngine.cpp index 6d1c03d537d..e2fec9f88f5 100644 --- a/clang/Analysis/GRExprEngine.cpp +++ b/clang/Analysis/GRExprEngine.cpp @@ -1554,6 +1554,7 @@ GRExprEngine::AssumeSymInt(ValueState* St, bool Assumption, #ifndef NDEBUG static GRExprEngine* GraphPrintCheckerState; static SourceManager* GraphPrintSourceManager; +static ValueState::CheckerStatePrinter* GraphCheckerStatePrinter; namespace llvm { template<> @@ -1794,7 +1795,7 @@ struct VISIBILITY_HIDDEN DOTGraphTraits<GRExprEngine::NodeTy*> : Out << "\\|StateID: " << (void*) N->getState() << "\\|"; - N->getState()->printDOT(Out); + N->getState()->printDOT(Out, GraphCheckerStatePrinter); Out << "\\l"; return Out.str(); @@ -1825,11 +1826,13 @@ void GRExprEngine::ViewGraph(bool trim) { else { GraphPrintCheckerState = this; GraphPrintSourceManager = &getContext().getSourceManager(); + GraphCheckerStatePrinter = TF->getCheckerStatePrinter(); llvm::ViewGraph(*G.roots_begin(), "GRExprEngine"); GraphPrintCheckerState = NULL; GraphPrintSourceManager = NULL; + GraphCheckerStatePrinter = NULL; } #endif } @@ -1838,6 +1841,7 @@ void GRExprEngine::ViewGraph(NodeTy** Beg, NodeTy** End) { #ifndef NDEBUG GraphPrintCheckerState = this; GraphPrintSourceManager = &getContext().getSourceManager(); + GraphCheckerStatePrinter = TF->getCheckerStatePrinter(); GRExprEngine::GraphTy* TrimmedG = G.Trim(Beg, End); @@ -1850,5 +1854,6 @@ void GRExprEngine::ViewGraph(NodeTy** Beg, NodeTy** End) { GraphPrintCheckerState = NULL; GraphPrintSourceManager = NULL; + GraphCheckerStatePrinter = NULL; #endif } diff --git a/clang/include/clang/Analysis/PathSensitive/GRTransferFuncs.h b/clang/include/clang/Analysis/PathSensitive/GRTransferFuncs.h index 256cadd945c..7432c7fb61b 100644 --- a/clang/include/clang/Analysis/PathSensitive/GRTransferFuncs.h +++ b/clang/include/clang/Analysis/PathSensitive/GRTransferFuncs.h @@ -17,17 +17,19 @@ #include "clang/Analysis/PathSensitive/RValues.h" #include "clang/Analysis/PathSensitive/GRCoreEngine.h" +#include "clang/Analysis/PathSensitive/ValueState.h" namespace clang { - class ValueState; - class ValueStateManager; - class GRTransferFuncs { public: GRTransferFuncs() {} virtual ~GRTransferFuncs() {} + virtual ValueState::CheckerStatePrinter* getCheckerStatePrinter() { + return NULL; + } + // Casts. virtual RVal EvalCast(BasicValueFactory& BasicVals, NonLVal V, |