diff --git a/llvm/lib/TargetParser/Triple.cpp b/llvm/lib/TargetParser/Triple.cpp index 55911a7d71ac7..18e2d4fa465f8 100644 --- a/llvm/lib/TargetParser/Triple.cpp +++ b/llvm/lib/TargetParser/Triple.cpp @@ -905,7 +905,6 @@ static Triple::ObjectFormatType getDefaultFormat(const Triple &T) { case Triple::mips64: case Triple::mips64el: case Triple::mips: - case Triple::mipsel: case Triple::msp430: case Triple::nvptx64: case Triple::nvptx: @@ -930,6 +929,11 @@ static Triple::ObjectFormatType getDefaultFormat(const Triple &T) { case Triple::xtensa: return Triple::ELF; + case Triple::mipsel: + if (T.isOSWindows()) + return Triple::COFF; + return Triple::ELF; + case Triple::ppc64: case Triple::ppc: if (T.isOSAIX()) diff --git a/llvm/unittests/TargetParser/TripleTest.cpp b/llvm/unittests/TargetParser/TripleTest.cpp index 0aecfc64da208..23407c191a94c 100644 --- a/llvm/unittests/TargetParser/TripleTest.cpp +++ b/llvm/unittests/TargetParser/TripleTest.cpp @@ -2302,6 +2302,10 @@ TEST(TripleTest, NormalizeWindows) { Triple::normalize("i686-pc-windows-elf-elf")); EXPECT_TRUE(Triple("x86_64-pc-win32").isWindowsMSVCEnvironment()); + + EXPECT_TRUE(Triple(Triple::normalize("mipsel-windows-msvccoff")).isOSBinFormatCOFF()); + EXPECT_TRUE(Triple(Triple::normalize("mipsel-windows-msvc")).isOSBinFormatCOFF()); + EXPECT_TRUE(Triple(Triple::normalize("mipsel-windows-gnu")).isOSBinFormatCOFF()); } TEST(TripleTest, NormalizeAndroid) {