diff options
author | Chris Wailes <chris.wailes@gmail.com> | 2013-10-25 15:33:28 +0000 |
---|---|---|
committer | Chris Wailes <chris.wailes@gmail.com> | 2013-10-25 15:33:28 +0000 |
commit | 2dc8c4283b9ff77b2fda6845b1b94d91ab220034 (patch) | |
tree | ebfa1c13580b89ea31df87458157979f99922f50 /clang/lib/Analysis/Consumed.cpp | |
parent | 5e82540d11bba62880c2944020d82dc0a8ce6353 (diff) | |
download | bcm5719-llvm-2dc8c4283b9ff77b2fda6845b1b94d91ab220034.tar.gz bcm5719-llvm-2dc8c4283b9ff77b2fda6845b1b94d91ab220034.zip |
Used OwningPtr to clean up some memory management in Consumed.cpp.
llvm-svn: 193414
Diffstat (limited to 'clang/lib/Analysis/Consumed.cpp')
-rw-r--r-- | clang/lib/Analysis/Consumed.cpp | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/clang/lib/Analysis/Consumed.cpp b/clang/lib/Analysis/Consumed.cpp index c1902718a8f..e5086748387 100644 --- a/clang/lib/Analysis/Consumed.cpp +++ b/clang/lib/Analysis/Consumed.cpp @@ -27,6 +27,7 @@ #include "clang/Basic/OperatorKinds.h" #include "clang/Basic/SourceLocation.h" #include "llvm/ADT/DenseMap.h" +#include "llvm/ADT/OwningPtr.h" #include "llvm/ADT/SmallVector.h" #include "llvm/Support/Compiler.h" #include "llvm/Support/raw_ostream.h" @@ -1259,7 +1260,7 @@ void ConsumedAnalyzer::determineExpectedReturnState(AnalysisDeclContext &AC, bool ConsumedAnalyzer::splitState(const CFGBlock *CurrBlock, const ConsumedStmtVisitor &Visitor) { - ConsumedStateMap *FalseStates = new ConsumedStateMap(*CurrStates); + OwningPtr<ConsumedStateMap> FalseStates(new ConsumedStateMap(*CurrStates)); PropagationInfo PInfo; if (const IfStmt *IfNode = @@ -1274,15 +1275,15 @@ bool ConsumedAnalyzer::splitState(const CFGBlock *CurrBlock, if (PInfo.isTest()) { CurrStates->setSource(Cond); FalseStates->setSource(Cond); - splitVarStateForIf(IfNode, PInfo.getTest(), CurrStates, FalseStates); + splitVarStateForIf(IfNode, PInfo.getTest(), CurrStates, + FalseStates.get()); } else if (PInfo.isBinTest()) { CurrStates->setSource(PInfo.testSourceNode()); FalseStates->setSource(PInfo.testSourceNode()); - splitVarStateForIfBinOp(PInfo, CurrStates, FalseStates); + splitVarStateForIfBinOp(PInfo, CurrStates, FalseStates.get()); } else { - delete FalseStates; return false; } @@ -1294,13 +1295,10 @@ bool ConsumedAnalyzer::splitState(const CFGBlock *CurrBlock, if ((BinOp = dyn_cast_or_null<BinaryOperator>(BinOp->getLHS()))) { PInfo = Visitor.getInfo(BinOp->getRHS()); - if (!PInfo.isTest()) { - delete FalseStates; + if (!PInfo.isTest()) return false; - } } else { - delete FalseStates; return false; } } @@ -1326,7 +1324,6 @@ bool ConsumedAnalyzer::splitState(const CFGBlock *CurrBlock, } } else { - delete FalseStates; return false; } @@ -1338,9 +1335,7 @@ bool ConsumedAnalyzer::splitState(const CFGBlock *CurrBlock, delete CurrStates; if (*++SI) - BlockInfo.addInfo(*SI, FalseStates); - else - delete FalseStates; + BlockInfo.addInfo(*SI, FalseStates.take()); CurrStates = NULL; return true; |