[cfe-commits] r48031 - /cfe/trunk/Analysis/GRExprEngine.cpp
Ted Kremenek
kremenek at apple.com
Fri Mar 7 12:57:33 PST 2008
Author: kremenek
Date: Fri Mar 7 14:57:30 2008
New Revision: 48031
URL: http://llvm.org/viewvc/llvm-project?rev=48031&view=rev
Log:
Improved graph visualization of ExplodedGraphs to include source line and column
information.
Modified:
cfe/trunk/Analysis/GRExprEngine.cpp
Modified: cfe/trunk/Analysis/GRExprEngine.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Analysis/GRExprEngine.cpp?rev=48031&r1=48030&r2=48031&view=diff
==============================================================================
--- cfe/trunk/Analysis/GRExprEngine.cpp (original)
+++ cfe/trunk/Analysis/GRExprEngine.cpp Fri Mar 7 14:57:30 2008
@@ -14,6 +14,7 @@
//===----------------------------------------------------------------------===//
#include "clang/Analysis/PathSensitive/GRExprEngine.h"
+#include "clang/Basic/SourceManager.h"
#include "llvm/Support/Streams.h"
#ifndef NDEBUG
@@ -1563,6 +1564,7 @@
#ifndef NDEBUG
static GRExprEngine* GraphPrintCheckerState;
+static SourceManager* GraphPrintSourceManager;
namespace llvm {
template<>
@@ -1702,11 +1704,16 @@
break;
case ProgramPoint::PostStmtKind: {
- const PostStmt& L = cast<PostStmt>(Loc);
- Out << L.getStmt()->getStmtClassName() << ':'
- << (void*) L.getStmt() << ' ';
-
- L.getStmt()->printPretty(Out);
+ const PostStmt& L = cast<PostStmt>(Loc);
+ Stmt* S = L.getStmt();
+ SourceLocation SLoc = S->getLocStart();
+
+ Out << S->getStmtClassName() << ' ' << (void*) S << ' ';
+ S->printPretty(Out);
+
+ Out << "\\lline="
+ << GraphPrintSourceManager->getLineNumber(SLoc) << " col="
+ << GraphPrintSourceManager->getColumnNumber(SLoc) << "\\l";
if (GraphPrintCheckerState->isImplicitNullDeref(N))
Out << "\\|Implicit-Null Dereference.\\l";
@@ -1738,9 +1745,17 @@
<< E.getDst()->getBlockID() << ')';
if (Stmt* T = E.getSrc()->getTerminator()) {
+
+ SourceLocation SLoc = T->getLocStart();
+
Out << "\\|Terminator: ";
+
E.getSrc()->printTerminator(Out);
+ Out << "\\lline="
+ << GraphPrintSourceManager->getLineNumber(SLoc) << " col="
+ << GraphPrintSourceManager->getColumnNumber(SLoc);
+
if (isa<SwitchStmt>(T)) {
Stmt* Label = E.getDst()->getLabel();
@@ -1798,7 +1813,9 @@
void GRExprEngine::ViewGraph() {
#ifndef NDEBUG
GraphPrintCheckerState = this;
+ GraphPrintSourceManager = &getContext().getSourceManager();
llvm::ViewGraph(*G.roots_begin(), "GRExprEngine");
GraphPrintCheckerState = NULL;
+ GraphPrintSourceManager = NULL;
#endif
}
More information about the cfe-commits
mailing list