aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Gaeke <gaeke@uiuc.edu>2004-04-14 17:45:48 +0000
committerBrian Gaeke <gaeke@uiuc.edu>2004-04-14 17:45:48 +0000
commit325297142c93ac162fcf9a3d78faeb1f49763914 (patch)
treebb7d31c587128712dc011987c7c00ed969f076db
parentac84728d487c73ac46b3636809e0d359dfb13884 (diff)
Add a copy constructor for TargetData.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12948 91177308-0d34-0410-b5e6-96231b3b80d8
-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