Author: Hubert Tong
Date: 2025-03-14T00:58:32-04:00
New Revision: 42748a454fc9d9a42504e8290234aaf9407437ce

URL: 
https://github.com/llvm/llvm-project/commit/42748a454fc9d9a42504e8290234aaf9407437ce
DIFF: 
https://github.com/llvm/llvm-project/commit/42748a454fc9d9a42504e8290234aaf9407437ce.diff

LOG: [Clang driver] Diagnose `-maix-shared-lib-tls-model-opt` on wrong targets 
(#130865)

Added: 
    

Modified: 
    clang/lib/Driver/ToolChains/Arch/PPC.cpp
    clang/test/Driver/aix-shared-lib-tls-model-opt.c

Removed: 
    


################################################################################
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