llvmorg-github-actions[bot] wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang-driver

Author: Petr Hosek (petrhosek)

<details>
<summary>Changes</summary>

This is mostly an NFC except for a different diagnostic being emitted. The goal 
is to unify validation and handling of invalid rtlib value across different 
drivers to simplify supporting more -rtlib= values in the future.

---
Full diff: https://github.com/llvm/llvm-project/pull/198219.diff


5 Files Affected:

- (modified) clang/lib/Driver/ToolChains/Darwin.cpp (+2-2) 
- (modified) clang/lib/Driver/ToolChains/Fuchsia.cpp (+4-4) 
- (modified) clang/lib/Driver/ToolChains/OHOS.cpp (+4-4) 
- (modified) clang/test/Driver/fuchsia.c (+1-1) 
- (modified) clang/test/Driver/ohos.c (+1-1) 


``````````diff
diff --git a/clang/lib/Driver/ToolChains/Darwin.cpp 
b/clang/lib/Driver/ToolChains/Darwin.cpp
index 61b779c60b90f..88cfd49892918 100644
--- a/clang/lib/Driver/ToolChains/Darwin.cpp
+++ b/clang/lib/Driver/ToolChains/Darwin.cpp
@@ -1641,12 +1641,12 @@ ToolChain::RuntimeLibType 
DarwinClang::GetRuntimeLibType(
     const ArgList &Args) const {
   if (Arg* A = Args.getLastArg(options::OPT_rtlib_EQ)) {
     StringRef Value = A->getValue();
-    if (Value != "compiler-rt" && Value != "platform")
+    if (Value != "compiler-rt" && Value != "platform" && Value != "none")
       getDriver().Diag(clang::diag::err_drv_unsupported_rtlib_for_platform)
           << Value << "darwin";
   }
 
-  return ToolChain::RLT_CompilerRT;
+  return ToolChain::GetRuntimeLibType(Args);
 }
 
 void DarwinClang::AddLinkRuntimeLibArgs(const ArgList &Args,
diff --git a/clang/lib/Driver/ToolChains/Fuchsia.cpp 
b/clang/lib/Driver/ToolChains/Fuchsia.cpp
index 55d41b25a05db..fcc55eb1c7279 100644
--- a/clang/lib/Driver/ToolChains/Fuchsia.cpp
+++ b/clang/lib/Driver/ToolChains/Fuchsia.cpp
@@ -346,12 +346,12 @@ ToolChain::RuntimeLibType
 Fuchsia::GetRuntimeLibType(const ArgList &Args) const {
   if (Arg *A = Args.getLastArg(options::OPT_rtlib_EQ)) {
     StringRef Value = A->getValue();
-    if (Value != "compiler-rt")
-      getDriver().Diag(clang::diag::err_drv_invalid_rtlib_name)
-          << A->getAsString(Args);
+    if (Value != "compiler-rt" && Value != "platform" && Value != "none")
+      getDriver().Diag(clang::diag::err_drv_unsupported_rtlib_for_platform)
+          << Value << "Fuchsia";
   }
 
-  return ToolChain::RLT_CompilerRT;
+  return ToolChain::GetRuntimeLibType(Args);
 }
 
 ToolChain::CXXStdlibType Fuchsia::GetCXXStdlibType(const ArgList &Args) const {
diff --git a/clang/lib/Driver/ToolChains/OHOS.cpp 
b/clang/lib/Driver/ToolChains/OHOS.cpp
index 2a83ef9db59cc..dfe537db89139 100644
--- a/clang/lib/Driver/ToolChains/OHOS.cpp
+++ b/clang/lib/Driver/ToolChains/OHOS.cpp
@@ -176,12 +176,12 @@ ToolChain::RuntimeLibType OHOS::GetRuntimeLibType(
     const ArgList &Args) const {
   if (Arg *A = Args.getLastArg(options::OPT_rtlib_EQ)) {
     StringRef Value = A->getValue();
-    if (Value != "compiler-rt")
-      getDriver().Diag(clang::diag::err_drv_invalid_rtlib_name)
-          << A->getAsString(Args);
+    if (Value != "compiler-rt" && Value != "platform" && Value != "none")
+      getDriver().Diag(clang::diag::err_drv_unsupported_rtlib_for_platform)
+          << Value << "OHOS";
   }
 
-  return ToolChain::RLT_CompilerRT;
+  return ToolChain::GetRuntimeLibType(Args);
 }
 
 ToolChain::CXXStdlibType
diff --git a/clang/test/Driver/fuchsia.c b/clang/test/Driver/fuchsia.c
index 0cf7535d14bd5..d7ee59696737c 100644
--- a/clang/test/Driver/fuchsia.c
+++ b/clang/test/Driver/fuchsia.c
@@ -82,7 +82,7 @@
 
 // RUN: not %clang -### %s --target=x86_64-unknown-fuchsia -rtlib=libgcc 2>&1 \
 // RUN:     | FileCheck %s -check-prefix=CHECK-RTLIB
-// CHECK-RTLIB: error: invalid runtime library name in argument '-rtlib=libgcc'
+// CHECK-RTLIB: error: unsupported runtime library 'libgcc' for platform 
'Fuchsia'
 
 // RUN: %clang -### %s --target=x86_64-unknown-fuchsia -static -fuse-ld=ld 
2>&1 \
 // RUN:     | FileCheck %s -check-prefix=CHECK-STATIC
diff --git a/clang/test/Driver/ohos.c b/clang/test/Driver/ohos.c
index 21416622471c2..0b8441932a71f 100644
--- a/clang/test/Driver/ohos.c
+++ b/clang/test/Driver/ohos.c
@@ -41,7 +41,7 @@
 
 // RUN: not %clang %s -### --target=arm-liteos -rtlib=libgcc 2>&1 \
 // RUN:     | FileCheck %s -check-prefix=CHECK-RTLIB
-// CHECK-RTLIB: error: invalid runtime library name in argument '-rtlib=libgcc'
+// CHECK-RTLIB: error: unsupported runtime library 'libgcc' for platform 'OHOS'
 
 // RUN: %clang %s -### --target=arm-liteos -static -fuse-ld=ld 2>&1 \
 // RUN:     | FileCheck %s -check-prefix=CHECK-STATIC

``````````

</details>


https://github.com/llvm/llvm-project/pull/198219
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to