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
