summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/Consumed.cpp
diff options
context:
space:
mode:
authorChris Wailes <chris.wailes@gmail.com>2013-10-25 15:33:28 +0000
committerChris Wailes <chris.wailes@gmail.com>2013-10-25 15:33:28 +0000
commit2dc8c4283b9ff77b2fda6845b1b94d91ab220034 (patch)
treeebfa1c13580b89ea31df87458157979f99922f50 /clang/lib/Analysis/Consumed.cpp
parent5e82540d11bba62880c2944020d82dc0a8ce6353 (diff)
downloadbcm5719-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.cpp19
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;
OpenPOWER on IntegriCloud