summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/include/llvm/ADT/Triple.h9
-rw-r--r--llvm/lib/Support/Triple.cpp2
-rw-r--r--llvm/unittests/ADT/TripleTest.cpp11
3 files changed, 20 insertions, 2 deletions
diff --git a/llvm/include/llvm/ADT/Triple.h b/llvm/include/llvm/ADT/Triple.h
index 3da2659c6cd..78fc4d7b624 100644
--- a/llvm/include/llvm/ADT/Triple.h
+++ b/llvm/include/llvm/ADT/Triple.h
@@ -214,8 +214,9 @@ public:
Itanium,
Cygnus,
CoreCLR,
- Simulator, // Simulator variants of other systems, e.g., Apple's iOS
- LastEnvironmentType = Simulator
+ Simulator, // Simulator variants of other systems, e.g., Apple's iOS
+ MacCatalyst,
+ LastEnvironmentType = MacCatalyst
};
enum ObjectFormatType {
UnknownObjectFormat,
@@ -485,6 +486,10 @@ public:
return getEnvironment() == Triple::Simulator;
}
+ bool isMacCatalystEnvironment() const {
+ return getEnvironment() == Triple::MacCatalyst;
+ }
+
bool isOSNetBSD() const {
return getOS() == Triple::NetBSD;
}
diff --git a/llvm/lib/Support/Triple.cpp b/llvm/lib/Support/Triple.cpp
index eacfe3b6bf0..54264903320 100644
--- a/llvm/lib/Support/Triple.cpp
+++ b/llvm/lib/Support/Triple.cpp
@@ -239,6 +239,7 @@ StringRef Triple::getEnvironmentTypeName(EnvironmentType Kind) {
case Cygnus: return "cygnus";
case CoreCLR: return "coreclr";
case Simulator: return "simulator";
+ case MacCatalyst: return "maccatalyst";
}
llvm_unreachable("Invalid EnvironmentType!");
@@ -541,6 +542,7 @@ static Triple::EnvironmentType parseEnvironment(StringRef EnvironmentName) {
.StartsWith("cygnus", Triple::Cygnus)
.StartsWith("coreclr", Triple::CoreCLR)
.StartsWith("simulator", Triple::Simulator)
+ .StartsWith("maccatalyst", Triple::MacCatalyst)
.Default(Triple::UnknownEnvironment);
}
diff --git a/llvm/unittests/ADT/TripleTest.cpp b/llvm/unittests/ADT/TripleTest.cpp
index b0f13d84af4..5b00a011ab3 100644
--- a/llvm/unittests/ADT/TripleTest.cpp
+++ b/llvm/unittests/ADT/TripleTest.cpp
@@ -1237,6 +1237,17 @@ TEST(TripleTest, getOSVersion) {
EXPECT_EQ((unsigned)3, Minor);
EXPECT_EQ((unsigned)0, Micro);
EXPECT_TRUE(T.isSimulatorEnvironment());
+ EXPECT_FALSE(T.isMacCatalystEnvironment());
+
+ T = Triple("x86_64-apple-ios13.0-maccatalyst");
+ EXPECT_TRUE(T.isiOS());
+ T.getiOSVersion(Major, Minor, Micro);
+ EXPECT_EQ((unsigned)13, Major);
+ EXPECT_EQ((unsigned)0, Minor);
+ EXPECT_EQ((unsigned)0, Micro);
+ EXPECT_TRUE(T.getEnvironment() == Triple::MacCatalyst);
+ EXPECT_TRUE(T.isMacCatalystEnvironment());
+ EXPECT_FALSE(T.isSimulatorEnvironment());
}
TEST(TripleTest, FileFormat) {
OpenPOWER on IntegriCloud