Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Jan 2026 17:40:57 +0000
From:      Dimitry Andric <dim@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-branches@FreeBSD.org
Subject:   git: 7a0510a4f44a - 2026Q1 - devel/llvm15: fix build with clang 21
Message-ID:  <6967d529.35c22.49c7d26@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch 2026Q1 has been updated by dim:

URL: https://cgit.FreeBSD.org/ports/commit/?id=7a0510a4f44a8198c6997e25dd3942c8b7774460

commit 7a0510a4f44a8198c6997e25dd3942c8b7774460
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2026-01-01 16:46:27 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2026-01-14 17:40:29 +0000

    devel/llvm15: fix build with clang 21
    
    Recent versions of clang complain about explicit copy constructors,
    leading to errors similar to:
    
        /wrkdirs/usr/ports/devel/llvm15/work-default/llvm-project-15.0.7.src/llvm/tools/sancov/sancov.cpp:532:44: error: chosen constructor is explicit in copy-initialization
          532 |       return SpecialCaseList::createOrDie({{ClBlacklist}},
              |                                            ^~~~~~~~~~~~~
        /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) {
              |                                                                                           ^
        /wrkdirs/usr/ports/devel/llvm15/work-default/llvm-project-15.0.7.src/llvm/tools/sancov/sancov.cpp:535:42: error: chosen constructor is explicit in copy-initialization
          535 |     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, `ClBlacklist` and `ClIgnoreList` are instances of
    `cl::opt`, not a `std::string` as expected. Use `getValue()` to get the
    actual `std::string` values.
    
    PR:             292111
    Approved by:    brooks (maintainer)
    MFH:            2026Q1
    
    (cherry picked from commit e77e39dc86cae4b1228be3f45c4ec2b1bfaede09)
---
 devel/llvm15/files/patch-llvm_tools_sancov_sancov.cpp | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/devel/llvm15/files/patch-llvm_tools_sancov_sancov.cpp b/devel/llvm15/files/patch-llvm_tools_sancov_sancov.cpp
new file mode 100644
index 000000000000..3d5271dc4f55
--- /dev/null
+++ b/devel/llvm15/files/patch-llvm_tools_sancov_sancov.cpp
@@ -0,0 +1,15 @@
+--- llvm/tools/sancov/sancov.cpp.orig	2023-01-12 07:12:30 UTC
++++ llvm/tools/sancov/sancov.cpp
+@@ -529,10 +529,10 @@ class Ignorelists { (private)
+       return std::unique_ptr<SpecialCaseList>();
+ 
+     if (!ClBlacklist.empty())
+-      return SpecialCaseList::createOrDie({{ClBlacklist}},
++      return SpecialCaseList::createOrDie({{ClBlacklist.getValue()}},
+                                           *vfs::getRealFileSystem());
+ 
+-    return SpecialCaseList::createOrDie({{ClIgnorelist}},
++    return SpecialCaseList::createOrDie({{ClIgnorelist.getValue()}},
+                                         *vfs::getRealFileSystem());
+   }
+   std::unique_ptr<SpecialCaseList> DefaultIgnorelist;


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6967d529.35c22.49c7d26>