@@ -1615,13 +1615,10 @@ void CompilerInvocation::setDefaultPredefinitions() {
16151615 }
16161616
16171617 llvm::Triple targetTriple{llvm::Triple (this ->targetOpts .triple )};
1618- if (targetTriple.isPPC ()) {
1619- // '__powerpc__' is a generic macro for any PowerPC cases. e.g. Max integer
1620- // size.
1621- fortranOptions.predefinitions .emplace_back (" __powerpc__" , " 1" );
1622- }
16231618 if (targetTriple.isOSLinux ()) {
16241619 fortranOptions.predefinitions .emplace_back (" __linux__" , " 1" );
1620+ } else if (targetTriple.isOSAIX ()) {
1621+ fortranOptions.predefinitions .emplace_back (" _AIX" , " 1" );
16251622 }
16261623
16271624 switch (targetTriple.getArch ()) {
@@ -1631,6 +1628,16 @@ void CompilerInvocation::setDefaultPredefinitions() {
16311628 fortranOptions.predefinitions .emplace_back (" __x86_64__" , " 1" );
16321629 fortranOptions.predefinitions .emplace_back (" __x86_64" , " 1" );
16331630 break ;
1631+ case llvm::Triple::ArchType::ppc:
1632+ case llvm::Triple::ArchType::ppc64:
1633+ case llvm::Triple::ArchType::ppcle:
1634+ case llvm::Triple::ArchType::ppc64le:
1635+ // '__powerpc__' is a generic macro for any PowerPC.
1636+ fortranOptions.predefinitions .emplace_back (" __powerpc__" , " 1" );
1637+ if (targetTriple.isOSAIX () && targetTriple.isArch64Bit ()) {
1638+ fortranOptions.predefinitions .emplace_back (" __64BIT__" , " 1" );
1639+ }
1640+ break ;
16341641 }
16351642}
16361643
0 commit comments