diff options
author | David Blaikie <dblaikie@gmail.com> | 2014-04-21 20:37:07 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2014-04-21 20:37:07 +0000 |
commit | 2b1dfa72446039dd7e0ae0478bc088b6d7398a20 (patch) | |
tree | 339825ba7b332b513fdb47355f85eedc239bba38 /llvm/lib/CodeGen/LiveDebugVariables.cpp | |
parent | 422b93dcf1713afac3f7e4b5ae11e333ef90a771 (diff) | |
download | bcm5719-llvm-2b1dfa72446039dd7e0ae0478bc088b6d7398a20.tar.gz bcm5719-llvm-2b1dfa72446039dd7e0ae0478bc088b6d7398a20.zip |
Use unique_ptr to handle ownership of UserValues in LiveDebugVariablesImpl
llvm-svn: 206785
Diffstat (limited to 'llvm/lib/CodeGen/LiveDebugVariables.cpp')
-rw-r--r-- | llvm/lib/CodeGen/LiveDebugVariables.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/llvm/lib/CodeGen/LiveDebugVariables.cpp b/llvm/lib/CodeGen/LiveDebugVariables.cpp index eb188cf10e0..644ba232db6 100644 --- a/llvm/lib/CodeGen/LiveDebugVariables.cpp +++ b/llvm/lib/CodeGen/LiveDebugVariables.cpp @@ -41,6 +41,8 @@ #include "llvm/Target/TargetMachine.h" #include "llvm/Target/TargetRegisterInfo.h" +#include <memory> + using namespace llvm; static cl::opt<bool> @@ -292,7 +294,7 @@ class LDVImpl { bool ModifiedMF; /// userValues - All allocated UserValue instances. - SmallVector<UserValue*, 8> userValues; + SmallVector<std::unique_ptr<UserValue>, 8> userValues; /// Map virtual register to eq class leader. typedef DenseMap<unsigned, UserValue*> VRMap; @@ -332,7 +334,6 @@ public: /// clear - Release all memory. void clear() { - DeleteContainerPointers(userValues); userValues.clear(); virtRegToEqClass.clear(); userVarMap.clear(); @@ -429,8 +430,9 @@ UserValue *LDVImpl::getUserValue(const MDNode *Var, unsigned Offset, return UV; } - UserValue *UV = new UserValue(Var, Offset, IsIndirect, DL, allocator); - userValues.push_back(UV); + userValues.push_back( + make_unique<UserValue>(Var, Offset, IsIndirect, DL, allocator)); + UserValue *UV = userValues.back().get(); Leader = UserValue::merge(Leader, UV); return UV; } |