aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2026-01-01 20:11:11 +0000
committerDimitry Andric <dim@FreeBSD.org>2026-01-14 17:36:44 +0000
commit39d6b5aaaf453db99e7834e643563381ecfa19e3 (patch)
treef325898ee296b4d54fceee8a073d62adf5b84398
parent347be1ab29c26d0414a6c51b6d69f359718b58d6 (diff)
devel/llvm17: fix build with clang 21
Recent versions of clang complain about explicit copy constructors, leading to errors similar to: /wrkdirs/usr/ports/devel/llvm17/work-default/llvm-project-17.0.6.src/llvm/tools/sancov/sancov.cpp /wrkdirs/usr/ports/devel/llvm17/work-default/llvm-project-17.0.6.src/llvm/tools/sancov/sancov.cpp:521:42: error: chosen constructor is explicit in copy-initialization 521 | return SpecialCaseList::createOrDie({{ClIgnorelist}}, | ^~~~~~~~~~~~~~ /usr/include/c++/v1/string:1153:64: note: explicit constructor declared here 1153 | _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 explicit basic_string(const _Tp& __t) { | ^ /usr/include/c++/v1/__vector/vector.h:276:91: note: passing argument to parameter '__il' here 276 | _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI vector(initializer_list<value_type> __il) { | ^ In this case, `ClIgnoreList` is an instance of `cl::opt`, not a `std::string` as expected. Use `getValue()` to get the actual `std::string` value. PR: 292113 Approved by: brooks (maintainer) MFH: 2026Q1
-rw-r--r--devel/llvm17/files/patch-llvm_tools_sancov_sancov.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/devel/llvm17/files/patch-llvm_tools_sancov_sancov.cpp b/devel/llvm17/files/patch-llvm_tools_sancov_sancov.cpp
new file mode 100644
index 000000000000..46085a53cf3b
--- /dev/null
+++ b/devel/llvm17/files/patch-llvm_tools_sancov_sancov.cpp
@@ -0,0 +1,11 @@
+--- llvm/tools/sancov/sancov.cpp.orig 2023-11-28 08:52:28 UTC
++++ llvm/tools/sancov/sancov.cpp
+@@ -518,7 +518,7 @@ class Ignorelists { (private)
+ static std::unique_ptr<SpecialCaseList> createUserIgnorelist() {
+ if (ClIgnorelist.empty())
+ return std::unique_ptr<SpecialCaseList>();
+- return SpecialCaseList::createOrDie({{ClIgnorelist}},
++ return SpecialCaseList::createOrDie({{ClIgnorelist.getValue()}},
+ *vfs::getRealFileSystem());
+ }
+ std::unique_ptr<SpecialCaseList> DefaultIgnorelist;