[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