Add llvm::triple constructor from arch, vendor, os strings, and recognize
authorDaniel Dunbar <daniel@zuster.org>
Fri, 22 May 2009 02:24:11 +0000 (02:24 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Fri, 22 May 2009 02:24:11 +0000 (02:24 +0000)
DragonFly OS type.

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

include/llvm/ADT/Triple.h
lib/Support/Triple.cpp

index f146c0f37ffe3b6131d9745be58af796cff9a622..b260f984948ed63b1d603db78e202c37defb3d86 100644 (file)
@@ -50,6 +50,7 @@ public:
     UnknownOS,
 
     Darwin,
+    DragonFly,
     FreeBSD,
     Linux
   };
@@ -75,6 +76,13 @@ public:
   
   Triple() : Data(""), Arch(InvalidArch) {}
   explicit Triple(const char *Str) : Data(Str), Arch(InvalidArch) {}
+  explicit Triple(const char *ArchStr, const char *VendorStr, const char *OSStr)
+    : Data(ArchStr), Arch(InvalidArch) {
+    Data += '-';
+    Data += VendorStr;
+    Data += '-';
+    Data += OSStr;
+  }
 
   /// @}
   /// @name Typed Component Access
index 5310c3a6e73ed1e324f21bb3192ff6577d9bcc70..e8cf69d81ff1c5ca23615d14070a95f88b1bbcb4 100644 (file)
@@ -44,6 +44,7 @@ const char *Triple::getOSTypeName(OSType Kind) {
   case UnknownOS: return "unknown";
 
   case Darwin: return "darwin";
+  case DragonFly: return "dragonfly";
   case FreeBSD: return "freebsd";
   case Linux: return "linux";
   }
@@ -80,6 +81,8 @@ void Triple::Parse() const {
   std::string OSName = getOSName();
   if (memcmp(&OSName[0], "darwin", 6) == 0)
     OS = Darwin;
+  else if (memcmp(&OSName[0], "dragonfly", 9) == 0)
+    OS = DragonFly;
   else if (memcmp(&OSName[0], "freebsd", 7) == 0)
     OS = FreeBSD;
   else if (memcmp(&OSName[0], "linux", 5) == 0)