summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/ARMTargetMachine.h
diff options
context:
space:
mode:
authorJeffrey Yasskin <jyasskin@google.com>2010-03-19 05:25:28 +0000
committerJeffrey Yasskin <jyasskin@google.com>2010-03-19 05:25:28 +0000
commitc3e45f1ee2741935cf15f0ad7e3e7694681fa125 (patch)
tree837aa318a9e186a647bae99daa6308ae9de82558 /lib/Target/ARM/ARMTargetMachine.h
parente8cabf3c2eb835f9189a39c810654d9bd302f7ee (diff)
downloadllvm-c3e45f1ee2741935cf15f0ad7e3e7694681fa125.tar.gz
llvm-c3e45f1ee2741935cf15f0ad7e3e7694681fa125.tar.bz2
llvm-c3e45f1ee2741935cf15f0ad7e3e7694681fa125.tar.xz
Remove a memory leak from ThumbTargetMachine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98936 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMTargetMachine.h')
-rw-r--r--lib/Target/ARM/ARMTargetMachine.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/Target/ARM/ARMTargetMachine.h b/lib/Target/ARM/ARMTargetMachine.h
index 88e67e3808..c32f16c77a 100644
--- a/lib/Target/ARM/ARMTargetMachine.h
+++ b/lib/Target/ARM/ARMTargetMachine.h
@@ -23,6 +23,7 @@
#include "ARMISelLowering.h"
#include "Thumb1InstrInfo.h"
#include "Thumb2InstrInfo.h"
+#include "llvm/ADT/OwningPtr.h"
namespace llvm {
@@ -83,7 +84,8 @@ public:
/// Thumb-1 and Thumb-2.
///
class ThumbTargetMachine : public ARMBaseTargetMachine {
- ARMBaseInstrInfo *InstrInfo; // either Thumb1InstrInfo or Thumb2InstrInfo
+ // Either Thumb1InstrInfo or Thumb2InstrInfo.
+ OwningPtr<ARMBaseInstrInfo> InstrInfo;
const TargetData DataLayout; // Calculates type size & alignment
ARMTargetLowering TLInfo;
public:
@@ -100,7 +102,9 @@ public:
}
/// returns either Thumb1InstrInfo or Thumb2InstrInfo
- virtual const ARMBaseInstrInfo *getInstrInfo() const { return InstrInfo; }
+ virtual const ARMBaseInstrInfo *getInstrInfo() const {
+ return InstrInfo.get();
+ }
virtual const TargetData *getTargetData() const { return &DataLayout; }
};