[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);
+ }
+ } else {
+ D.Diag(diag::err_drv_invalid_object_mode) << ObjectMode;
+ }
+ } 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)) {
+ // For flang on AIX, if OBJECT_MODE is unset and compile
+ // without -maix64/-m64 issue an error.
----------------
tarunprabhu wrote:
nit: grammar
```suggestion
// For flang on AIX, if OBJECT_MODE is unset and neither
// -maix64, nor -m64 is specified, issue an error.
```
https://github.com/llvm/llvm-project/pull/209919
More information about the flang-commits
mailing list