aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/CBackend/CTargetMachine.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Target/CBackend/CTargetMachine.h')
-rw-r--r--lib/Target/CBackend/CTargetMachine.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/Target/CBackend/CTargetMachine.h b/lib/Target/CBackend/CTargetMachine.h
index f947f650c6..271a2bf653 100644
--- a/lib/Target/CBackend/CTargetMachine.h
+++ b/lib/Target/CBackend/CTargetMachine.h
@@ -19,8 +19,11 @@
namespace llvm {
struct CTargetMachine : public TargetMachine {
+ const TargetData DataLayout; // Calculates type size & alignment
+
CTargetMachine(const Module &M, const std::string &FS)
- : TargetMachine("CBackend", M) {}
+ : TargetMachine("CBackend", M),
+ DataLayout("CBackend") {}
// This is the only thing that actually does anything here.
virtual bool addPassesToEmitFile(PassManager &PM, std::ostream &Out,
@@ -28,6 +31,8 @@ struct CTargetMachine : public TargetMachine {
// This class always works, but shouldn't be the default in most cases.
static unsigned getModuleMatchQuality(const Module &M) { return 1; }
+
+ virtual const TargetData *getTargetData() const { return &DataLayout; }
};
} // End llvm namespace