diff --git a/llvm/include/llvm/ADT/Triple.h b/llvm/include/llvm/ADT/Triple.h --- a/llvm/include/llvm/ADT/Triple.h +++ b/llvm/include/llvm/ADT/Triple.h @@ -220,7 +220,8 @@ WASI, // Experimental WebAssembly OS Emscripten, ShaderModel, // DirectX ShaderModel - LastOSType = ShaderModel + MorphOS, + LastOSType = MorphOS }; enum EnvironmentType { UnknownEnvironment, diff --git a/llvm/lib/Support/Triple.cpp b/llvm/lib/Support/Triple.cpp --- a/llvm/lib/Support/Triple.cpp +++ b/llvm/lib/Support/Triple.cpp @@ -225,6 +225,7 @@ case MacOSX: return "macosx"; case Mesa3D: return "mesa3d"; case Minix: return "minix"; + case MorphOS: return "morphos"; case NVCL: return "nvcl"; case NaCl: return "nacl"; case NetBSD: return "netbsd"; @@ -587,6 +588,7 @@ .StartsWith("wasi", Triple::WASI) .StartsWith("emscripten", Triple::Emscripten) .StartsWith("shadermodel", Triple::ShaderModel) + .StartsWith("morphos", Triple::MorphOS) .Default(Triple::UnknownOS); } diff --git a/llvm/unittests/ADT/TripleTest.cpp b/llvm/unittests/ADT/TripleTest.cpp --- a/llvm/unittests/ADT/TripleTest.cpp +++ b/llvm/unittests/ADT/TripleTest.cpp @@ -804,6 +804,12 @@ EXPECT_EQ(Triple::Amplification, T.getEnvironment()); EXPECT_FALSE(T.supportsCOMDAT()); + T = Triple("powerpc-unknown-morphos"); + EXPECT_EQ(Triple::ppc, T.getArch()); + EXPECT_EQ(Triple::UnknownVendor, T.getVendor()); + EXPECT_EQ(Triple::MorphOS, T.getOS()); + EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment()); + T = Triple("huh"); EXPECT_EQ(Triple::UnknownArch, T.getArch()); }