aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/Target/TargetData.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/include/llvm/Target/TargetData.h b/include/llvm/Target/TargetData.h
index dc40efb1ab..1cc7ddb7d1 100644
--- a/include/llvm/Target/TargetData.h
+++ b/include/llvm/Target/TargetData.h
@@ -42,6 +42,7 @@ class TargetData : public ImmutablePass {
unsigned char DoubleAlignment; // Defaults to 8 bytes
unsigned char PointerSize; // Defaults to 8 bytes
unsigned char PointerAlignment; // Defaults to 8 bytes
+
public:
TargetData(const std::string &TargetName = "",
bool LittleEndian = false,
@@ -50,6 +51,21 @@ public:
unsigned char FloatAl = 4, unsigned char LongAl = 8,
unsigned char IntAl = 4, unsigned char ShortAl = 2,
unsigned char ByteAl = 1);
+
+ // Copy constructor
+ TargetData (const TargetData &TD) :
+ ImmutablePass (),
+ LittleEndian (TD.isLittleEndian ()),
+ ByteAlignment (TD.getByteAlignment ()),
+ ShortAlignment (TD.getShortAlignment ()),
+ IntAlignment (TD.getIntAlignment ()),
+ LongAlignment (TD.getLongAlignment ()),
+ FloatAlignment (TD.getFloatAlignment ()),
+ DoubleAlignment (TD.getDoubleAlignment ()),
+ PointerSize (TD.getPointerSize ()),
+ PointerAlignment (TD.getPointerAlignment ()) {
+ }
+
TargetData(const std::string &ToolName, const Module *M);
~TargetData(); // Not virtual, do not subclass this class