summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-05-22 02:24:11 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-05-22 02:24:11 +0000
commite3384c4f2e3e8ee6d5b6de83321a299aac86a268 (patch)
tree70a946de8aea25918972758a676492c4f1c9a89a
parent5bbebfe9bc46b1142a3447a72b2b07899e5bf4b6 (diff)
downloadbcm5719-llvm-e3384c4f2e3e8ee6d5b6de83321a299aac86a268.tar.gz
bcm5719-llvm-e3384c4f2e3e8ee6d5b6de83321a299aac86a268.zip
Add llvm::triple constructor from arch, vendor, os strings, and recognize
DragonFly OS type. llvm-svn: 72242
-rw-r--r--llvm/include/llvm/ADT/Triple.h8
-rw-r--r--llvm/lib/Support/Triple.cpp3
2 files changed, 11 insertions, 0 deletions
diff --git a/llvm/include/llvm/ADT/Triple.h b/llvm/include/llvm/ADT/Triple.h
index f146c0f37ff..b260f984948 100644
--- a/llvm/include/llvm/ADT/Triple.h
+++ b/llvm/include/llvm/ADT/Triple.h
@@ -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
diff --git a/llvm/lib/Support/Triple.cpp b/llvm/lib/Support/Triple.cpp
index 5310c3a6e73..e8cf69d81ff 100644
--- a/llvm/lib/Support/Triple.cpp
+++ b/llvm/lib/Support/Triple.cpp
@@ -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)
OpenPOWER on IntegriCloud