[flang-commits] [clang] [flang] [llvm] [flang][AIX] Diagnose unsupported OBJECT_MODE setting and -maix32 option (PR #209919)
Kelvin Li via flang-commits
flang-commits at lists.llvm.org
Fri Jul 17 22:04:59 PDT 2026
https://github.com/kkwli updated https://github.com/llvm/llvm-project/pull/209919
>From a66afcbe5a0fe4cd8fbfd22cce9f7f0f49077548 Mon Sep 17 00:00:00 2001
From: Kelvin Li <kli at ca.ibm.com>
Date: Fri, 10 Jul 2026 14:31:07 -0400
Subject: [PATCH 1/3] [flang][AIX] Diagnose unsupported OBJECT_MODE setting and
-maix32 option
This patch is to align flang's default behavior to the other tools in
toolchain on AIX. Flang assumes 32-bit compile by default. The compile
mode can be overridden by setting environment variable OBJECT_MODE=64
or specifying the -maix64 option.
---
.../clang/Basic/DiagnosticDriverKinds.td | 3 ++
clang/lib/Driver/Driver.cpp | 45 ++++++++++++++-----
flang-rt/test/lit.cfg.py | 2 +-
flang/test/Driver/aix-object-mode.f90 | 21 +++++++++
flang/test/Driver/m32-option.f90 | 10 ++---
flang/test/lit.cfg.py | 5 +++
6 files changed, 68 insertions(+), 18 deletions(-)
create mode 100644 flang/test/Driver/aix-object-mode.f90
diff --git a/clang/include/clang/Basic/DiagnosticDriverKinds.td b/clang/include/clang/Basic/DiagnosticDriverKinds.td
index ae3eecc60fc78..63ac028e3f87d 100644
--- a/clang/include/clang/Basic/DiagnosticDriverKinds.td
+++ b/clang/include/clang/Basic/DiagnosticDriverKinds.td
@@ -826,6 +826,9 @@ def err_drv_cannot_mix_options : Error<"cannot specify '%1' along with '%0'">;
def err_drv_invalid_object_mode : Error<
"OBJECT_MODE setting %0 is not recognized and is not a valid setting">;
+def err_drv_compile_mode_unsupported : Error<
+ "the 32-bit compile mode is not supported. Use OBJECT_MODE=64, -maix64 or -m64">;
+
def err_roptr_requires_data_sections: Error<"-mxcoff-roptr is supported only with -fdata-sections">;
def err_roptr_cannot_build_shared: Error<"-mxcoff-roptr is not supported with -shared">;
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index e606cdc4c1cf8..4f63c2bd44ba8 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -675,21 +675,37 @@ 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()) {
+ bool HasMaix = Args.hasArg(options::OPT_maix32, options::OPT_maix64,
+ options::OPT_m32, options::OPT_m64);
+ if (!HasMaix) {
+ if (ObjectMode == "64") {
+ AT = Target.get64BitArchVariant().getArch();
+ } else {
+ D.Diag(diag::err_drv_compile_mode_unsupported);
+ AT = Target.get32BitArchVariant().getArch();
+ }
+ }
+ } else {
+ // 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 (AT != llvm::Triple::UnknownArch && AT != Target.getArch()) {
Target.setArch(AT);
Target = llvm::Triple(Target.normalize());
}
+ } else if (D.IsFlangMode() &&
+ !Args.hasArg(options::OPT_maix64, options::OPT_m64)) {
+ D.Diag(diag::err_drv_compile_mode_unsupported);
}
}
#endif
@@ -728,9 +744,14 @@ static llvm::Triple computeTargetTriple(const Driver &D, StringRef TargetTriple,
Target.setEnvironment(llvm::Triple::GNUX32);
} else if (A->getOption().matches(options::OPT_m32) ||
A->getOption().matches(options::OPT_maix32)) {
- if (D.IsFlangMode() && !Target.isOSAIX()) {
- D.Diag(diag::err_drv_unsupported_opt_for_target)
- << A->getAsString(Args) << Target.str();
+ if (D.IsFlangMode()) {
+ // On AIX, flang assumes 32-bit mode compile by default
+ if (!Target.isOSAIX()) {
+ D.Diag(diag::err_drv_unsupported_opt_for_target)
+ << A->getAsString(Args) << Target.str();
+ } else if (llvm::sys::Process::GetEnv("OBJECT_MODE")) {
+ D.Diag(diag::err_drv_compile_mode_unsupported);
+ }
} else {
AT = Target.get32BitArchVariant().getArch();
if (Target.getEnvironment() == llvm::Triple::GNUX32)
diff --git a/flang-rt/test/lit.cfg.py b/flang-rt/test/lit.cfg.py
index 9780a0e77ed7a..9b81d9494e598 100644
--- a/flang-rt/test/lit.cfg.py
+++ b/flang-rt/test/lit.cfg.py
@@ -111,4 +111,4 @@ def shjoin(args, sep=" "):
# Tools that support OBJECT_MODE default to 32-bit on AIX. Set
# OBJECT_MODE=any to handle both 32-bit and 64-bit objects.
if "system-aix" in config.available_features:
- config.environment["OBJECT_MODE"] = "any"
+ config.environment["OBJECT_MODE"] = "64"
diff --git a/flang/test/Driver/aix-object-mode.f90 b/flang/test/Driver/aix-object-mode.f90
new file mode 100644
index 0000000000000..30d5c51e4251e
--- /dev/null
+++ b/flang/test/Driver/aix-object-mode.f90
@@ -0,0 +1,21 @@
+! Check Flang on AIX OBJECT_MODE handling and -maix* flag behavior.
+!REQUIRES: system-aix
+
+!RUN: env -u OBJECT_MODE not %flang -print-target-triple 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
+
+!RUN: env OBJECT_MODE=32 not %flang -print-target-triple 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
+
+!RUN: env OBJECT_MODE=32_64 not %flang -print-target-triple 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
+
+!RUN: env OBJECT_MODE=any not %flang -print-target-triple 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
+
+!RUN: env OBJECT_MODE=64 %flang -print-target-triple 2>&1 | FileCheck -check-prefix=MODE-64BIT %s
+
+!RUN: not %flang -maix32 -print-target-triple 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
+
+!RUN: env OBJECT_MODE=64 not %flang -maix32 -print-target-triple 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
+
+!RUN: env OBJECT_MODE=32 %flang -maix64 -print-target-triple 2>&1 | FileCheck -check-prefix=MODE-64BIT %s
+
+!MODE-64BIT: powerpc64-ibm-aix
+!MAIX32-ERROR: error: the 32-bit compile mode is not supported. Use OBJECT_MODE=64, -maix64 or -m64
diff --git a/flang/test/Driver/m32-option.f90 b/flang/test/Driver/m32-option.f90
index 722bddfa43739..88cad46e209b4 100644
--- a/flang/test/Driver/m32-option.f90
+++ b/flang/test/Driver/m32-option.f90
@@ -1,14 +1,14 @@
! Check support of -m32.
-! RUN: %flang -target powerpc-ibm-aix -m32 -### - %s 2>&1 | FileCheck -check-prefix=M32 %s
-! RUN: %flang -target powerpc64-ibm-aix -m32 -### - %s 2>&1 | FileCheck -check-prefix=M32 %s
-! RUN: %flang -target powerpc-ibm-aix -maix32 -### - %s 2>&1 | FileCheck -check-prefix=M32 %s
-! RUN: %flang -target powerpc64-ibm-aix -maix32 -### - %s 2>&1 | FileCheck -check-prefix=M32 %s
+! RUN: not %flang -target powerpc-ibm-aix -m32 -### - %s 2>&1 | FileCheck -check-prefix=M32-AIX-ERROR %s
+! RUN: not %flang -target powerpc64-ibm-aix -m32 -### - %s 2>&1 | FileCheck -check-prefix=M32-AIX-ERROR %s
+! RUN: not %flang -target powerpc-ibm-aix -maix32 -### - %s 2>&1 | FileCheck -check-prefix=M32-AIX-ERROR %s
+! RUN: not %flang -target powerpc64-ibm-aix -maix32 -### - %s 2>&1 | FileCheck -check-prefix=M32-AIX-ERROR %s
! RUN: %flang -target powerpc-ibm-aix -maix64 -### - %s 2>&1 | FileCheck -check-prefix=M64 %s
! RUN: %flang -target powerpc64-ibm-aix -maix64 -### - %s 2>&1 | FileCheck -check-prefix=M64 %s
! RUN: not %flang -target powerpc64le-unknown-linux-gnu -m32 -### - %s 2>&1 | FileCheck -check-prefix=M32-ERROR %s
! RUN: not %flang -target powerpc64le-unknown-linux-gnu -maix32 -### - %s 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
-! M32: "-triple" "powerpc-ibm-aix{{.*}}"
+! M32-AIX-ERROR: error: the 32-bit compile mode is not supported. Use OBJECT_MODE=64, -maix64 or -m64
! M64: "-triple" "powerpc64-ibm-aix{{.*}}"
! M32-ERROR: error: unsupported option '-m32' for target 'powerpc64le-unknown-linux-gnu'
! MAIX32-ERROR: error: unsupported option '-maix32' for target 'powerpc64le-unknown-linux-gnu'
diff --git a/flang/test/lit.cfg.py b/flang/test/lit.cfg.py
index 121854efe1f61..c9a860a8af111 100644
--- a/flang/test/lit.cfg.py
+++ b/flang/test/lit.cfg.py
@@ -271,3 +271,8 @@ def get_resource_module_intrinsic_dir(modfile):
)
else:
config.substitutions.append(("%f128-lib", "NONE"))
+
+# Tools that support OBJECT_MODE default to 32-bit on AIX. Set
+# OBJECT_MODE=any to handle both 32-bit and 64-bit objects.
+if "system-aix" in config.available_features:
+ config.environment["OBJECT_MODE"] = "64"
>From ae02211657ddcc71f64db742a5bf0f5efe20788c Mon Sep 17 00:00:00 2001
From: Kelvin Li <kli at ca.ibm.com>
Date: Thu, 16 Jul 2026 13:12:33 -0400
Subject: [PATCH 2/3] update the logic to handle cases that targetting AIX
platform
---
clang/lib/Driver/Driver.cpp | 15 ++++++++++-----
flang/test/Driver/aix-object-mode.f90 | 19 +++++++++++--------
2 files changed, 21 insertions(+), 13 deletions(-)
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 4f63c2bd44ba8..018ab5569c659 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -745,12 +745,17 @@ static llvm::Triple computeTargetTriple(const Driver &D, StringRef TargetTriple,
} else if (A->getOption().matches(options::OPT_m32) ||
A->getOption().matches(options::OPT_maix32)) {
if (D.IsFlangMode()) {
- // On AIX, flang assumes 32-bit mode compile by default
- if (!Target.isOSAIX()) {
- D.Diag(diag::err_drv_unsupported_opt_for_target)
- << A->getAsString(Args) << Target.str();
- } else if (llvm::sys::Process::GetEnv("OBJECT_MODE")) {
+ // Flang does not support 32-bit compilation.
+ // On an AIX host, -m32/-maix32 is always an error.
+ // On a non-AIX host, it is an error only when targeting AIX.
+ llvm::Triple HostTriple(D.getTargetTriple());
+ if (HostTriple.isOSAIX() || Target.isOSAIX()) {
D.Diag(diag::err_drv_compile_mode_unsupported);
+ } else {
+ AT = Target.get32BitArchVariant().getArch();
+ if (AT == llvm::Triple::ppcle)
+ D.Diag(diag::err_drv_unsupported_opt_for_target)
+ << A->getAsString(Args) << Target.str();
}
} else {
AT = Target.get32BitArchVariant().getArch();
diff --git a/flang/test/Driver/aix-object-mode.f90 b/flang/test/Driver/aix-object-mode.f90
index 30d5c51e4251e..47a4489cd0ee7 100644
--- a/flang/test/Driver/aix-object-mode.f90
+++ b/flang/test/Driver/aix-object-mode.f90
@@ -1,21 +1,24 @@
! Check Flang on AIX OBJECT_MODE handling and -maix* flag behavior.
!REQUIRES: system-aix
-!RUN: env -u OBJECT_MODE not %flang -print-target-triple 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
+!RUN: env -u OBJECT_MODE not %flang %s 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
-!RUN: env OBJECT_MODE=32 not %flang -print-target-triple 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
+!RUN: env OBJECT_MODE=32 not %flang %s 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
-!RUN: env OBJECT_MODE=32_64 not %flang -print-target-triple 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
+!RUN: env OBJECT_MODE=32_64 not %flang %s 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
-!RUN: env OBJECT_MODE=any not %flang -print-target-triple 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
+!RUN: env OBJECT_MODE=any not %flang %s 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
-!RUN: env OBJECT_MODE=64 %flang -print-target-triple 2>&1 | FileCheck -check-prefix=MODE-64BIT %s
+!RUN: env OBJECT_MODE=64 %flang -print-target-triple %s 2>&1 | FileCheck -check-prefix=MODE-64BIT %s
-!RUN: not %flang -maix32 -print-target-triple 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
+!RUN: not %flang -maix32 %s 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
-!RUN: env OBJECT_MODE=64 not %flang -maix32 -print-target-triple 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
+!RUN: env OBJECT_MODE=64 not %flang -maix32 %s 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
-!RUN: env OBJECT_MODE=32 %flang -maix64 -print-target-triple 2>&1 | FileCheck -check-prefix=MODE-64BIT %s
+!RUN: env OBJECT_MODE=32 %flang -maix64 -print-target-triple %s 2>&1 | FileCheck -check-prefix=MODE-64BIT %s
!MODE-64BIT: powerpc64-ibm-aix
!MAIX32-ERROR: error: the 32-bit compile mode is not supported. Use OBJECT_MODE=64, -maix64 or -m64
+
+program main
+end
>From ce1740b4654d3370999d50f0a85555ea6299b760 Mon Sep 17 00:00:00 2001
From: Kelvin Li <kli at ca.ibm.com>
Date: Sat, 18 Jul 2026 01:03:24 -0400
Subject: [PATCH 3/3] address review comments
---
.../clang/Basic/DiagnosticDriverKinds.td | 4 +--
clang/lib/Driver/Driver.cpp | 33 +++++++++----------
flang-rt/test/lit.cfg.py | 3 +-
flang/test/Driver/aix-object-mode.f90 | 12 ++++---
flang/test/Driver/m32-option.f90 | 2 +-
flang/test/lit.cfg.py | 3 +-
6 files changed, 29 insertions(+), 28 deletions(-)
diff --git a/clang/include/clang/Basic/DiagnosticDriverKinds.td b/clang/include/clang/Basic/DiagnosticDriverKinds.td
index 63ac028e3f87d..91895d4957cf7 100644
--- a/clang/include/clang/Basic/DiagnosticDriverKinds.td
+++ b/clang/include/clang/Basic/DiagnosticDriverKinds.td
@@ -826,8 +826,8 @@ def err_drv_cannot_mix_options : Error<"cannot specify '%1' along with '%0'">;
def err_drv_invalid_object_mode : Error<
"OBJECT_MODE setting %0 is not recognized and is not a valid setting">;
-def err_drv_compile_mode_unsupported : Error<
- "the 32-bit compile mode is not supported. Use OBJECT_MODE=64, -maix64 or -m64">;
+def err_drv_compile_mode_unsupported_aix : Error<
+ "32-bit compile mode is not supported. Use OBJECT_MODE=64, -maix64 or -m64">;
def err_roptr_requires_data_sections: Error<"-mxcoff-roptr is supported only with -fdata-sections">;
def err_roptr_cannot_build_shared: Error<"-mxcoff-roptr is not supported with -shared">;
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 018ab5569c659..df41ccda3a4cc 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -676,15 +676,18 @@ static llvm::Triple computeTargetTriple(const Driver &D, StringRef TargetTriple,
llvm::Triple::ArchType AT = llvm::Triple::UnknownArch;
if (D.IsFlangMode()) {
- bool HasMaix = Args.hasArg(options::OPT_maix32, options::OPT_maix64,
- options::OPT_m32, options::OPT_m64);
- if (!HasMaix) {
- if (ObjectMode == "64") {
+ 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);
- AT = Target.get32BitArchVariant().getArch();
+ D.Diag(diag::err_drv_compile_mode_unsupported_aix);
}
+ } else {
+ D.Diag(diag::err_drv_invalid_object_mode) << ObjectMode;
}
} else {
// Silently accept '32_64' and 'any'
@@ -705,7 +708,9 @@ static llvm::Triple computeTargetTriple(const Driver &D, StringRef TargetTriple,
}
} else if (D.IsFlangMode() &&
!Args.hasArg(options::OPT_maix64, options::OPT_m64)) {
- D.Diag(diag::err_drv_compile_mode_unsupported);
+ // For flang on AIX, if OBJECT_MODE is unset and compile
+ // without -maix64/-m64 issue an error.
+ D.Diag(diag::err_drv_compile_mode_unsupported_aix);
}
}
#endif
@@ -745,17 +750,11 @@ static llvm::Triple computeTargetTriple(const Driver &D, StringRef TargetTriple,
} else if (A->getOption().matches(options::OPT_m32) ||
A->getOption().matches(options::OPT_maix32)) {
if (D.IsFlangMode()) {
- // Flang does not support 32-bit compilation.
- // On an AIX host, -m32/-maix32 is always an error.
- // On a non-AIX host, it is an error only when targeting AIX.
- llvm::Triple HostTriple(D.getTargetTriple());
- if (HostTriple.isOSAIX() || Target.isOSAIX()) {
- D.Diag(diag::err_drv_compile_mode_unsupported);
+ if (Target.isOSAIX()) {
+ D.Diag(diag::err_drv_compile_mode_unsupported_aix);
} else {
- AT = Target.get32BitArchVariant().getArch();
- if (AT == llvm::Triple::ppcle)
- D.Diag(diag::err_drv_unsupported_opt_for_target)
- << A->getAsString(Args) << Target.str();
+ D.Diag(diag::err_drv_unsupported_opt_for_target)
+ << A->getAsString(Args) << Target.str();
}
} else {
AT = Target.get32BitArchVariant().getArch();
diff --git a/flang-rt/test/lit.cfg.py b/flang-rt/test/lit.cfg.py
index 9b81d9494e598..74958d8155ef6 100644
--- a/flang-rt/test/lit.cfg.py
+++ b/flang-rt/test/lit.cfg.py
@@ -108,7 +108,6 @@ def shjoin(args, sep=" "):
if config.flang_rt_fortran_modules:
config.available_features.add("fortran-modules")
-# Tools that support OBJECT_MODE default to 32-bit on AIX. Set
-# OBJECT_MODE=any to handle both 32-bit and 64-bit objects.
+# Set OBJECT_MODE=64 as tools on AIX default to 32-bit.
if "system-aix" in config.available_features:
config.environment["OBJECT_MODE"] = "64"
diff --git a/flang/test/Driver/aix-object-mode.f90 b/flang/test/Driver/aix-object-mode.f90
index 47a4489cd0ee7..773e5abf48c1e 100644
--- a/flang/test/Driver/aix-object-mode.f90
+++ b/flang/test/Driver/aix-object-mode.f90
@@ -1,4 +1,4 @@
-! Check Flang on AIX OBJECT_MODE handling and -maix* flag behavior.
+! Check Flang on AIX OBJECT_MODE handling with -maix* setting.
!REQUIRES: system-aix
!RUN: env -u OBJECT_MODE not %flang %s 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
@@ -11,14 +11,18 @@
!RUN: env OBJECT_MODE=64 %flang -print-target-triple %s 2>&1 | FileCheck -check-prefix=MODE-64BIT %s
-!RUN: not %flang -maix32 %s 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
-
!RUN: env OBJECT_MODE=64 not %flang -maix32 %s 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
!RUN: env OBJECT_MODE=32 %flang -maix64 -print-target-triple %s 2>&1 | FileCheck -check-prefix=MODE-64BIT %s
+!RUN: env OBJECT_MODE=7 not %flang %s 2>&1 | FileCheck -check-prefix=OBJECT-MODE-INVALID-ERROR %s
+
+!RUN: env OBJECT_MODE='' not %flang %s 2>&1 | FileCheck -check-prefix=OBJECT-MODE-EMPTY-ERROR %s
+
+!OBJECT-MODE-INVALID-ERROR: error: OBJECT_MODE setting 7 is not recognized and is not a valid setting
+!OBJECT-MODE-EMPTY-ERROR: error: OBJECT_MODE setting is not recognized and is not a valid setting
!MODE-64BIT: powerpc64-ibm-aix
-!MAIX32-ERROR: error: the 32-bit compile mode is not supported. Use OBJECT_MODE=64, -maix64 or -m64
+!MAIX32-ERROR: error: 32-bit compile mode is not supported. Use OBJECT_MODE=64, -maix64 or -m64
program main
end
diff --git a/flang/test/Driver/m32-option.f90 b/flang/test/Driver/m32-option.f90
index 88cad46e209b4..3eb1081952331 100644
--- a/flang/test/Driver/m32-option.f90
+++ b/flang/test/Driver/m32-option.f90
@@ -8,7 +8,7 @@
! RUN: not %flang -target powerpc64le-unknown-linux-gnu -m32 -### - %s 2>&1 | FileCheck -check-prefix=M32-ERROR %s
! RUN: not %flang -target powerpc64le-unknown-linux-gnu -maix32 -### - %s 2>&1 | FileCheck -check-prefix=MAIX32-ERROR %s
-! M32-AIX-ERROR: error: the 32-bit compile mode is not supported. Use OBJECT_MODE=64, -maix64 or -m64
+! M32-AIX-ERROR: error: 32-bit compile mode is not supported. Use OBJECT_MODE=64, -maix64 or -m64
! M64: "-triple" "powerpc64-ibm-aix{{.*}}"
! M32-ERROR: error: unsupported option '-m32' for target 'powerpc64le-unknown-linux-gnu'
! MAIX32-ERROR: error: unsupported option '-maix32' for target 'powerpc64le-unknown-linux-gnu'
diff --git a/flang/test/lit.cfg.py b/flang/test/lit.cfg.py
index c9a860a8af111..991ecdfc4f202 100644
--- a/flang/test/lit.cfg.py
+++ b/flang/test/lit.cfg.py
@@ -272,7 +272,6 @@ def get_resource_module_intrinsic_dir(modfile):
else:
config.substitutions.append(("%f128-lib", "NONE"))
-# Tools that support OBJECT_MODE default to 32-bit on AIX. Set
-# OBJECT_MODE=any to handle both 32-bit and 64-bit objects.
+# Set OBJECT_MODE=64 as tools on AIX default to 32-bit.
if "system-aix" in config.available_features:
config.environment["OBJECT_MODE"] = "64"
More information about the flang-commits
mailing list