Add a copy constructor for TargetData.
authorBrian Gaeke <gaeke@uiuc.edu>
Wed, 14 Apr 2004 17:45:48 +0000 (17:45 +0000)
committerBrian Gaeke <gaeke@uiuc.edu>
Wed, 14 Apr 2004 17:45:48 +0000 (17:45 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12948 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Target/TargetData.h

index dc40efb1abd99a545d76ce6e3371ba5cdaf4f14e..1cc7ddb7d1764db683db4954626bb2f591857464 100644 (file)
@@ -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