[clang] [AIX] Fix OBJECT_MODE bug on AIX (PR #193550)

via cfe-commits cfe-commits at lists.llvm.org
Wed Apr 22 10:49:45 PDT 2026


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-driver

@llvm/pr-subscribers-clang

Author: Mark Danial (madanial0)

<details>
<summary>Changes</summary>

if `--target` is specified it takes precedence over OBJECT_MODE

---
Full diff: https://github.com/llvm/llvm-project/pull/193550.diff


1 Files Affected:

- (modified) clang/lib/Driver/Driver.cpp (+6-1) 


``````````diff
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 2cbe3179892ff..a897d76e3e9ce 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -666,7 +666,12 @@ static llvm::Triple computeTargetTriple(const Driver &D,
     return Target;
 
   // On AIX, the env OBJECT_MODE may affect the resulting arch variant.
-  if (Target.isOSAIX()) {
+  // However, if --target was explicitly specified, it takes precedence.
+  // Only apply OBJECT_MODE if the target architecture is PowerPC.
+  if (Target.isOSAIX() && !Args.hasArg(options::OPT_target) &&
+      (Target.getArch() == llvm::Triple::ppc ||
+       Target.getArch() == llvm::Triple::ppc64 ||
+       Target.getArch() == llvm::Triple::ppc64le)) {
     if (std::optional<std::string> ObjectModeValue =
             llvm::sys::Process::GetEnv("OBJECT_MODE")) {
       StringRef ObjectMode = *ObjectModeValue;

``````````

</details>


https://github.com/llvm/llvm-project/pull/193550


More information about the cfe-commits mailing list