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.reinterpretc...@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) {

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to