diff options
author | Anna Zaks <ganna@apple.com> | 2011-09-15 18:56:07 +0000 |
---|---|---|
committer | Anna Zaks <ganna@apple.com> | 2011-09-15 18:56:07 +0000 |
commit | 4fdf97bf51d2a156cec3232efd6dae110aa02aa0 (patch) | |
tree | 7240de9e4106b186574f079a990100dc6227361b /lib/StaticAnalyzer/Core/BugReporterVisitors.cpp | |
parent | 1a995ddaa53a20dcd063ea47eb1f533ecb0d243a (diff) |
[analyzer] Refactor: make PathDiagnosticLocation responsible for validation of SourceLocations (commit 2 of ?):
- Fix a fixme and move the logic of creating a PathDiagnosticLocation corresponding to a ProgramPoint into a PathDiagnosticLocation constructor.
- Rename PathDiagnosticLocation::create to differentiate from the added constructor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139825 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/StaticAnalyzer/Core/BugReporterVisitors.cpp')
-rw-r--r-- | lib/StaticAnalyzer/Core/BugReporterVisitors.cpp | 36 |
1 files changed, 6 insertions, 30 deletions
diff --git a/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp b/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp index c6fd63f3bd..baef8cc9c0 100644 --- a/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp +++ b/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp @@ -238,23 +238,11 @@ PathDiagnosticPiece *FindLastStoreBRVisitor::VisitNode(const ExplodedNode *N, return NULL; } - // FIXME: Refactor this into BugReporterContext. - const Stmt *S = 0; + // Construct a new PathDiagnosticPiece. ProgramPoint P = N->getLocation(); - - if (BlockEdge *BE = dyn_cast<BlockEdge>(&P)) { - const CFGBlock *BSrc = BE->getSrc(); - S = BSrc->getTerminatorCondition(); - } - else if (PostStmt *PS = dyn_cast<PostStmt>(&P)) { - S = PS->getStmt(); - } - - if (!S) + PathDiagnosticLocation L = PathDiagnosticLocation(P,BRC.getSourceManager()); + if (!L.isValid()) return NULL; - - // Construct a new PathDiagnosticPiece. - PathDiagnosticLocation L(S, BRC.getSourceManager(), P.getLocationContext()); return new PathDiagnosticEventPiece(L, os.str()); } @@ -298,23 +286,11 @@ TrackConstraintBRVisitor::VisitNode(const ExplodedNode *N, if (os.str().empty()) return NULL; - // FIXME: Refactor this into BugReporterContext. - const Stmt *S = 0; + // Construct a new PathDiagnosticPiece. ProgramPoint P = N->getLocation(); - - if (BlockEdge *BE = dyn_cast<BlockEdge>(&P)) { - const CFGBlock *BSrc = BE->getSrc(); - S = BSrc->getTerminatorCondition(); - } - else if (PostStmt *PS = dyn_cast<PostStmt>(&P)) { - S = PS->getStmt(); - } - - if (!S) + PathDiagnosticLocation L = PathDiagnosticLocation(P,BRC.getSourceManager()); + if (!L.isValid()) return NULL; - - // Construct a new PathDiagnosticPiece. - PathDiagnosticLocation L(S, BRC.getSourceManager(), P.getLocationContext()); return new PathDiagnosticEventPiece(L, os.str()); } |