[clang] [Clang driver] Diagnose `-maix-shared-lib-tls-model-opt` on wrong targets (PR #130865)
Hubert Tong via cfe-commits
cfe-commits at lists.llvm.org
Thu Mar 13 15:17:41 PDT 2025
https://github.com/hubert-reinterpretcast updated https://github.com/llvm/llvm-project/pull/130865
>From 45827d5b7e0f98f52280191d79d72a5698adb312 Mon Sep 17 00:00:00 2001
From: Hubert Tong <hubert.reinterpretcast at gmail.com>
Date: Sun, 9 Mar 2025 21:44:53 -0400
Subject: [PATCH] [Clang driver] Diagnose -maix-shared-lib-tls-model-opt on
wrong targets
---
clang/lib/Driver/ToolChains/Arch/PPC.cpp | 5 +++++
clang/test/Driver/aix-shared-lib-tls-model-opt.c | 7 +++----
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/clang/lib/Driver/ToolChains/Arch/PPC.cpp b/clang/lib/Driver/ToolChains/Arch/PPC.cpp
index 57baa186a9eb7..f0ced406fca86 100644
--- a/clang/lib/Driver/ToolChains/Arch/PPC.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/PPC.cpp
@@ -72,6 +72,11 @@ void ppc::getPPCTargetFeatures(const Driver &D, const llvm::Triple &Triple,
D.Diag(diag::err_drv_argument_only_allowed_with)
<< "-maix-small-local-[exec|dynamic]-tls" << "-fdata-sections";
}
+
+ if (Args.hasArg(options::OPT_maix_shared_lib_tls_model_opt) &&
+ !(Triple.isOSAIX() && Triple.isArch64Bit()))
+ D.Diag(diag::err_opt_not_valid_on_target)
+ << "-maix-shared-lib-tls-model-opt";
}
ppc::ReadGOTPtrMode ppc::getPPCReadGOTPtrMode(const Driver &D, const llvm::Triple &Triple,
diff --git a/clang/test/Driver/aix-shared-lib-tls-model-opt.c b/clang/test/Driver/aix-shared-lib-tls-model-opt.c
index e610bb6d15d9d..7acf091f0a049 100644
--- a/clang/test/Driver/aix-shared-lib-tls-model-opt.c
+++ b/clang/test/Driver/aix-shared-lib-tls-model-opt.c
@@ -6,12 +6,11 @@
// RUN: %clang -target powerpc64-unknown-aix -maix-shared-lib-tls-model-opt -S -emit-llvm \
// RUN: %s -o - | FileCheck %s --check-prefixes=CHECK-AIX,CHECK-AIX-ON
-// FIXME: Clang driver diagnostic not implemented.
-// RUN: true || not %clang -target powerpc-unknown-aix -maix-shared-lib-tls-model-opt \
+// RUN: not %clang -target powerpc-unknown-aix -maix-shared-lib-tls-model-opt \
// RUN: -fsyntax-only %s 2>&1 | FileCheck --check-prefix=CHECK-UNSUPPORTED-TARGET %s
-// RUN: true || not %clang -target powerpc64le-unknown-linux-gnu -maix-shared-lib-tls-model-opt \
+// RUN: not %clang -target powerpc64le-unknown-linux-gnu -maix-shared-lib-tls-model-opt \
// RUN: -fsyntax-only %s 2>&1 | FileCheck --check-prefix=CHECK-UNSUPPORTED-TARGET %s
-// RUN: true || not %clang -target powerpc64-unknown-linux-gnu -maix-shared-lib-tls-model-opt \
+// RUN: not %clang -target powerpc64-unknown-linux-gnu -maix-shared-lib-tls-model-opt \
// RUN: -fsyntax-only %s 2>&1 | FileCheck --check-prefix=CHECK-UNSUPPORTED-TARGET %s
int test(void) {
More information about the cfe-commits
mailing list