diff options
author | Marcin Swiderski <marcin.sfider@gmail.com> | 2010-10-29 05:21:47 +0000 |
---|---|---|
committer | Marcin Swiderski <marcin.sfider@gmail.com> | 2010-10-29 05:21:47 +0000 |
commit | 4ba72a0b28135209c435630682febe1f854ccfa6 (patch) | |
tree | a44b7776dbef2e286d9e24fa6202e791b0684e36 /lib/Analysis | |
parent | 424ae9882e8a6eecc9dfe7c2d8623e72b2563873 (diff) |
Added CFGTerminator class, that holds information about CFGBlock terminator statement.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117642 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis')
-rw-r--r-- | lib/Analysis/CFG.cpp | 10 | ||||
-rw-r--r-- | lib/Analysis/ReachableCode.cpp | 3 |
2 files changed, 7 insertions, 6 deletions
diff --git a/lib/Analysis/CFG.cpp b/lib/Analysis/CFG.cpp index 3653500f92..527d0eb870 100644 --- a/lib/Analysis/CFG.cpp +++ b/lib/Analysis/CFG.cpp @@ -2455,7 +2455,7 @@ bool CFGBlock::FilterEdge(const CFGBlock::FilterOptions &F, // If the 'To' has no label or is labeled but the label isn't a // CaseStmt then filter this edge. if (const SwitchStmt *S = - dyn_cast_or_null<SwitchStmt>(From->getTerminator())) { + dyn_cast_or_null<SwitchStmt>(From->getTerminator().getStmt())) { if (S->isAllEnumCasesCovered()) { const Stmt *L = To->getLabel(); if (!L || !isa<CaseStmt>(L)) @@ -2834,7 +2834,7 @@ static void print_block(llvm::raw_ostream& OS, const CFG* cfg, CFGBlockTerminatorPrint TPrinter(OS, Helper, PrintingPolicy(Helper->getLangOpts())); - TPrinter.Visit(const_cast<Stmt*>(B.getTerminator())); + TPrinter.Visit(const_cast<Stmt*>(B.getTerminator().getStmt())); OS << '\n'; } @@ -2916,11 +2916,11 @@ void CFGBlock::print(llvm::raw_ostream& OS, const CFG* cfg, void CFGBlock::printTerminator(llvm::raw_ostream &OS, const LangOptions &LO) const { CFGBlockTerminatorPrint TPrinter(OS, NULL, PrintingPolicy(LO)); - TPrinter.Visit(const_cast<Stmt*>(getTerminator())); + TPrinter.Visit(const_cast<Stmt*>(getTerminator().getStmt())); } Stmt* CFGBlock::getTerminatorCondition() { - + Stmt *Terminator = this->Terminator; if (!Terminator) return NULL; @@ -2974,7 +2974,7 @@ Stmt* CFGBlock::getTerminatorCondition() { } bool CFGBlock::hasBinaryBranchTerminator() const { - + const Stmt *Terminator = this->Terminator; if (!Terminator) return false; diff --git a/lib/Analysis/ReachableCode.cpp b/lib/Analysis/ReachableCode.cpp index 00882641db..1abfde2310 100644 --- a/lib/Analysis/ReachableCode.cpp +++ b/lib/Analysis/ReachableCode.cpp @@ -244,7 +244,8 @@ void FindUnreachableCode(AnalysisContext &AC, Callback &CB) { CFGBlock &b = **I; if (!reachable[b.getBlockID()]) { if (b.pred_empty()) { - if (!AddEHEdges && dyn_cast_or_null<CXXTryStmt>(b.getTerminator())) { + if (!AddEHEdges + && dyn_cast_or_null<CXXTryStmt>(b.getTerminator().getStmt())) { // When not adding EH edges from calls, catch clauses // can otherwise seem dead. Avoid noting them as dead. numReachable += ScanReachableFromBlock(b, reachable); |