Simplify the targetdata ctor by not passing in a "targetname" which is always
authorChris Lattner <sabre@nondot.org>
Fri, 16 Jun 2006 18:21:53 +0000 (18:21 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 16 Jun 2006 18:21:53 +0000 (18:21 +0000)
ignored.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28829 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Target/TargetData.h

index 30568155e646bcde49f7de9fb8086852bdeb2dc3..e4ea5c1cc4c5caf9c53c5854e552ee3c77bef26d 100644 (file)
@@ -45,19 +45,26 @@ class TargetData : public ImmutablePass {
   unsigned char PointerAlignment;      // Defaults to 8 bytes
 
 public:
+  /// Default ctor - This has to exist, because this is a pass, but it should
+  /// never be used.
+  TargetData() {
+    assert(0 && "ERROR: Bad TargetData ctor used.  "
+           "Tool did not specify a TargetData to use?");
+    abort();
+  }
+    
   /// Constructs a TargetData from a string of the following format:
   /// "E-p:64:64-d:64-f:32-l:64-i:32-s:16-b:8-B:8"
   /// The above string is considered the default, and any values not specified
   /// in the string will be assumed to be as above.
-  TargetData(const std::string &TargetName = "",
-             const std::string &TargetDescription = "") {
-    assert(!TargetName.empty() &&
-           "ERROR: Tool did not specify a target data to use!");
+  TargetData(const std::string &TargetDescription) {
     init(TargetDescription);
   }
-  
-  // Copy constructor
-  TargetData (const TargetData &TD) :
+
+  /// Initialize target data from properties stored in the module.
+  TargetData(const Module *M);
+
+  TargetData(const TargetData &TD) : 
     ImmutablePass(),
     LittleEndian(TD.isLittleEndian()),
     BoolAlignment(TD.getBoolAlignment()),
@@ -71,7 +78,6 @@ public:
     PointerAlignment(TD.getPointerAlignment()) {
   }
 
-  TargetData(const std::string &ToolName, const Module *M);
   ~TargetData();  // Not virtual, do not subclass this class
 
   /// init - Specify configuration if not available at ctor time.