[flang-commits] [clang] [flang] [llvm] [flang][AIX] Diagnose unsupported OBJECT_MODE setting and -maix32 option (PR #209919)
Tarun Prabhu via flang-commits
flang-commits at lists.llvm.org
Wed Jul 22 07:46:26 PDT 2026
================
@@ -675,21 +675,42 @@ static llvm::Triple computeTargetTriple(const Driver &D, StringRef TargetTriple,
StringRef ObjectMode = *ObjectModeValue;
llvm::Triple::ArchType AT = llvm::Triple::UnknownArch;
- // Silently accept '32_64' and 'any'
- const bool OtherAllowedMode =
- ObjectMode == "32_64" || ObjectMode == "any";
- if (ObjectMode == "64") {
- AT = Target.get64BitArchVariant().getArch();
- } else if (ObjectMode == "32") {
- AT = Target.get32BitArchVariant().getArch();
- } else if (!OtherAllowedMode) {
- D.Diag(diag::err_drv_invalid_object_mode) << ObjectMode;
+ if (D.IsFlangMode()) {
+ if (ObjectMode == "64") {
+ AT = Target.get64BitArchVariant().getArch();
+ } else if (ObjectMode == "32" || ObjectMode == "32_64" ||
+ ObjectMode == "any") {
+ // OBJECT_MODE setting can be overridden by -maix64/-m64
+ if (Args.hasArg(options::OPT_maix64, options::OPT_m64)) {
+ AT = Target.get64BitArchVariant().getArch();
+ } else {
+ D.Diag(diag::err_drv_compile_mode_unsupported_aix);
+ }
----------------
tarunprabhu wrote:
Flang strictly requires braces everywhere, but clang does not. These aren't strictly necessary, but leaving them in is fine too.
https://github.com/llvm/llvm-project/pull/209919
More information about the flang-commits
mailing list