diff options
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r-- | flang/lib/Frontend/CompilerInvocation.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/flang/lib/Frontend/CompilerInvocation.cpp b/flang/lib/Frontend/CompilerInvocation.cpp index ffde7f5..4707de0 100644 --- a/flang/lib/Frontend/CompilerInvocation.cpp +++ b/flang/lib/Frontend/CompilerInvocation.cpp @@ -1326,10 +1326,23 @@ void CompilerInvocation::setDefaultPredefinitions() { Fortran::common::setOpenMPMacro(getLangOpts().OpenMPVersion, fortranOptions.predefinitions); } + llvm::Triple targetTriple{llvm::Triple(this->targetOpts.triple)}; - if (targetTriple.getArch() == llvm::Triple::ArchType::x86_64) { + switch (targetTriple.getArch()) { + default: + break; + case llvm::Triple::ArchType::x86_64: fortranOptions.predefinitions.emplace_back("__x86_64__", "1"); fortranOptions.predefinitions.emplace_back("__x86_64", "1"); + break; + case llvm::Triple::ArchType::ppc: + case llvm::Triple::ArchType::ppcle: + case llvm::Triple::ArchType::ppc64: + case llvm::Triple::ArchType::ppc64le: + // '__powerpc__' is a generic macro for any PowerPC cases. e.g. Max integer + // size. + fortranOptions.predefinitions.emplace_back("__powerpc__", "1"); + break; } } |