@@ -1612,13 +1612,10 @@ void CompilerInvocation::setDefaultPredefinitions() {
16121612 }
16131613
16141614 llvm::Triple targetTriple{llvm::Triple (this ->targetOpts .triple )};
1615- if (targetTriple.isPPC ()) {
1616- // '__powerpc__' is a generic macro for any PowerPC cases. e.g. Max integer
1617- // size.
1618- fortranOptions.predefinitions .emplace_back (" __powerpc__" , " 1" );
1619- }
16201615 if (targetTriple.isOSLinux ()) {
16211616 fortranOptions.predefinitions .emplace_back (" __linux__" , " 1" );
1617+ } else if (targetTriple.isOSAIX ()) {
1618+ fortranOptions.predefinitions .emplace_back (" _AIX" , " 1" );
16221619 }
16231620
16241621 switch (targetTriple.getArch ()) {
@@ -1628,6 +1625,16 @@ void CompilerInvocation::setDefaultPredefinitions() {
16281625 fortranOptions.predefinitions .emplace_back (" __x86_64__" , " 1" );
16291626 fortranOptions.predefinitions .emplace_back (" __x86_64" , " 1" );
16301627 break ;
1628+ case llvm::Triple::ArchType::ppc:
1629+ case llvm::Triple::ArchType::ppc64:
1630+ case llvm::Triple::ArchType::ppcle:
1631+ case llvm::Triple::ArchType::ppc64le:
1632+ // '__powerpc__' is a generic macro for any PowerPC.
1633+ fortranOptions.predefinitions .emplace_back (" __powerpc__" , " 1" );
1634+ if (targetTriple.isOSAIX () && targetTriple.isArch64Bit ()) {
1635+ fortranOptions.predefinitions .emplace_back (" __64BIT__" , " 1" );
1636+ }
1637+ break ;
16311638 }
16321639}
16331640
0 commit comments