[clang] [driver][AIX] Accept '32_64' and 'any' as valid value for OBJECT_MODE (PR #205180)

Kelvin Li via cfe-commits cfe-commits at lists.llvm.org
Mon Jun 22 13:01:45 PDT 2026


https://github.com/kkwli created https://github.com/llvm/llvm-project/pull/205180

If OBJECT_MODE is set to '32_64' or 'any', the bit mode defaults to '32'.

>From 5c84f39a41beeb0c8029e062faf4fef0765092fa Mon Sep 17 00:00:00 2001
From: Kelvin Li <kli at ca.ibm.com>
Date: Mon, 22 Jun 2026 15:55:25 -0400
Subject: [PATCH] [driver][AIX] Accept '32_64' and 'any' as valid value for
 OBJECT_MODE

If OBJECT_MODE is set to '32_64' or 'any', the bit mode defaults to '32'.
---
 clang/lib/Driver/Driver.cpp         |  3 ++-
 clang/test/Driver/aix-object-mode.c | 15 +++++++++++++++
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index ea06235de5c1f..d540d95c025ec 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -676,7 +676,8 @@ static llvm::Triple computeTargetTriple(const Driver &D,
 
       if (ObjectMode == "64") {
         AT = Target.get64BitArchVariant().getArch();
-      } else if (ObjectMode == "32") {
+      } else if (ObjectMode == "32" || ObjectMode == "32_64" ||
+                 ObjectMode == "any") {
         AT = Target.get32BitArchVariant().getArch();
       } else {
         D.Diag(diag::err_drv_invalid_object_mode) << ObjectMode;
diff --git a/clang/test/Driver/aix-object-mode.c b/clang/test/Driver/aix-object-mode.c
index 7d79b5e900f67..4e513d5b5f9cd 100644
--- a/clang/test/Driver/aix-object-mode.c
+++ b/clang/test/Driver/aix-object-mode.c
@@ -12,6 +12,15 @@
 // RUN: env OBJECT_MODE=32 \
 // RUN: %clang -print-target-triple | FileCheck -check-prefix=CHECK32 %s
 
+// RUN: env OBJECT_MODE=32_64 \
+// RUN: %clang --target=powerpc64-ibm-aix -print-target-triple | FileCheck -check-prefix=CHECK64 %s
+
+// RUN: env OBJECT_MODE=32_64 \
+// RUN: %clang -print-target-triple | FileCheck -check-prefix=CHECK32 %s
+
+// RUN: env OBJECT_MODE=any \
+// RUN: %clang -print-target-triple | FileCheck -check-prefix=CHECK32 %s
+
 // Command-line options win.
 // RUN: env OBJECT_MODE=64 \
 // RUN: %clang --target=powerpc64-ibm-aix -print-target-triple -m32 | FileCheck -check-prefix=CHECK32 %s
@@ -19,6 +28,12 @@
 // RUN: env OBJECT_MODE=32 \
 // RUN: %clang --target=powerpc-ibm-aix -print-target-triple -m64 | FileCheck -check-prefix=CHECK64 %s
 
+// RUN: env OBJECT_MODE=32_64 \
+// RUN: %clang --target=powerpc-ibm-aix -print-target-triple -m64 | FileCheck -check-prefix=CHECK64 %s
+
+// RUN: env OBJECT_MODE=any \
+// RUN: %clang --target=powerpc-ibm-aix -print-target-triple -m64 | FileCheck -check-prefix=CHECK64 %s
+
 // CHECK32: powerpc-ibm-aix
 // CHECK64: powerpc64-ibm-aix
 



More information about the cfe-commits mailing list