forked from OSchip/llvm-project
[ADT] Recognize ppc as valid architecture in target triple.
Until this patch, only `powerpc` and `ppc32` were recognized as valid PowerPC 32-bit architectures in a target triple. This was incompatible with the triple `ppc-apple-darwin` as returned for libObject. I found out about this when working on a test case using a binary generated on an old PowerBook G4. We had the choice of either fix this in the Mach-O object parser or in the Triple implementation. I chose the latter because it feels like the most canonical place. Differential revision: https://reviews.llvm.org/D43760 llvm-svn: 326182
This commit is contained in:
parent
1807c516c7
commit
425b248128
|
@ -384,7 +384,7 @@ static Triple::ArchType parseArch(StringRef ArchName) {
|
|||
// FIXME: Do we need to support these?
|
||||
.Cases("i786", "i886", "i986", Triple::x86)
|
||||
.Cases("amd64", "x86_64", "x86_64h", Triple::x86_64)
|
||||
.Cases("powerpc", "ppc32", Triple::ppc)
|
||||
.Cases("powerpc", "ppc", "ppc32", Triple::ppc)
|
||||
.Cases("powerpc64", "ppu", "ppc64", Triple::ppc64)
|
||||
.Cases("powerpc64le", "ppc64le", Triple::ppc64le)
|
||||
.Case("xscale", Triple::arm)
|
||||
|
|
|
@ -117,12 +117,29 @@ TEST(TripleTest, ParsedIDs) {
|
|||
EXPECT_EQ(Triple::CNK, T.getOS());
|
||||
EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment());
|
||||
|
||||
T = Triple("ppc-bgp-linux");
|
||||
EXPECT_EQ(Triple::ppc, T.getArch());
|
||||
EXPECT_EQ(Triple::BGP, T.getVendor());
|
||||
EXPECT_EQ(Triple::Linux, T.getOS());
|
||||
EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment());
|
||||
|
||||
T = Triple("ppc32-bgp-linux");
|
||||
EXPECT_EQ(Triple::ppc, T.getArch());
|
||||
EXPECT_EQ(Triple::BGP, T.getVendor());
|
||||
EXPECT_EQ(Triple::Linux, T.getOS());
|
||||
EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment());
|
||||
|
||||
T = Triple("powerpc64-bgq-linux");
|
||||
EXPECT_EQ(Triple::ppc64, T.getArch());
|
||||
EXPECT_EQ(Triple::BGQ, T.getVendor());
|
||||
EXPECT_EQ(Triple::Linux, T.getOS());
|
||||
EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment());
|
||||
|
||||
T = Triple("ppc64-bgq-linux");
|
||||
EXPECT_EQ(Triple::ppc64, T.getArch());
|
||||
EXPECT_EQ(Triple::BGQ, T.getVendor());
|
||||
EXPECT_EQ(Triple::Linux, T.getOS());
|
||||
|
||||
T = Triple("powerpc-ibm-aix");
|
||||
EXPECT_EQ(Triple::ppc, T.getArch());
|
||||
EXPECT_EQ(Triple::IBM, T.getVendor());
|
||||
|
|
Loading…
Reference in New Issue