diff options
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r-- | flang/lib/Frontend/CompilerInvocation.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/flang/lib/Frontend/CompilerInvocation.cpp b/flang/lib/Frontend/CompilerInvocation.cpp index 28f2f69..238079a 100644 --- a/flang/lib/Frontend/CompilerInvocation.cpp +++ b/flang/lib/Frontend/CompilerInvocation.cpp @@ -1615,13 +1615,10 @@ void CompilerInvocation::setDefaultPredefinitions() { } llvm::Triple targetTriple{llvm::Triple(this->targetOpts.triple)}; - if (targetTriple.isPPC()) { - // '__powerpc__' is a generic macro for any PowerPC cases. e.g. Max integer - // size. - fortranOptions.predefinitions.emplace_back("__powerpc__", "1"); - } if (targetTriple.isOSLinux()) { fortranOptions.predefinitions.emplace_back("__linux__", "1"); + } else if (targetTriple.isOSAIX()) { + fortranOptions.predefinitions.emplace_back("_AIX", "1"); } switch (targetTriple.getArch()) { @@ -1631,6 +1628,16 @@ void CompilerInvocation::setDefaultPredefinitions() { fortranOptions.predefinitions.emplace_back("__x86_64__", "1"); fortranOptions.predefinitions.emplace_back("__x86_64", "1"); break; + case llvm::Triple::ArchType::ppc: + case llvm::Triple::ArchType::ppc64: + case llvm::Triple::ArchType::ppcle: + case llvm::Triple::ArchType::ppc64le: + // '__powerpc__' is a generic macro for any PowerPC. + fortranOptions.predefinitions.emplace_back("__powerpc__", "1"); + if (targetTriple.isOSAIX() && targetTriple.isArch64Bit()) { + fortranOptions.predefinitions.emplace_back("__64BIT__", "1"); + } + break; } } |