diff options
author | Akira Hatanaka <ahatanaka@mips.com> | 2012-12-12 20:09:58 +0000 |
---|---|---|
committer | Akira Hatanaka <ahatanaka@mips.com> | 2012-12-12 20:09:58 +0000 |
commit | 7bc144c366002efcbbb439b56682d93aaa560b0f (patch) | |
tree | 9a204e22db60e30c91ca0f581625291cce14cb60 /llvm/lib/Target/Mips | |
parent | f8bb4eadcaf64ba37edef999d6e0be95e868a3b2 (diff) | |
download | bcm5719-llvm-7bc144c366002efcbbb439b56682d93aaa560b0f.tar.gz bcm5719-llvm-7bc144c366002efcbbb439b56682d93aaa560b0f.zip |
[mips] Fix a memory leak bug report by NAKAMURA Takumi.
llvm-svn: 170012
Diffstat (limited to 'llvm/lib/Target/Mips')
-rw-r--r-- | llvm/lib/Target/Mips/MipsTargetMachine.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/llvm/lib/Target/Mips/MipsTargetMachine.h b/llvm/lib/Target/Mips/MipsTargetMachine.h index 8b1a06f3200..ddf15010dc4 100644 --- a/llvm/lib/Target/Mips/MipsTargetMachine.h +++ b/llvm/lib/Target/Mips/MipsTargetMachine.h @@ -20,6 +20,7 @@ #include "MipsJITInfo.h" #include "MipsSelectionDAGInfo.h" #include "MipsSubtarget.h" +#include "llvm/ADT/OwningPtr.h" #include "llvm/DataLayout.h" #include "llvm/Target/TargetFrameLowering.h" #include "llvm/Target/TargetMachine.h" @@ -32,8 +33,8 @@ class MipsRegisterInfo; class MipsTargetMachine : public LLVMTargetMachine { MipsSubtarget Subtarget; const DataLayout DL; // Calculates type size & alignment - const MipsInstrInfo *InstrInfo; - const MipsFrameLowering *FrameLowering; + OwningPtr<const MipsInstrInfo> InstrInfo; + OwningPtr<const MipsFrameLowering> FrameLowering; MipsTargetLowering TLInfo; MipsSelectionDAGInfo TSInfo; MipsJITInfo JITInfo; @@ -47,12 +48,12 @@ public: CodeGenOpt::Level OL, bool isLittle); - virtual ~MipsTargetMachine() { delete InstrInfo; } + virtual ~MipsTargetMachine() {} virtual const MipsInstrInfo *getInstrInfo() const - { return InstrInfo; } + { return InstrInfo.get(); } virtual const TargetFrameLowering *getFrameLowering() const - { return FrameLowering; } + { return FrameLowering.get(); } virtual const MipsSubtarget *getSubtargetImpl() const { return &Subtarget; } virtual const DataLayout *getDataLayout() const |