[Bug 292108] devel/llvm12: fix build with clang 21

From: <bugzilla-noreply_at_freebsd.org>
Date: Thu, 01 Jan 2026 20:52:03 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292108

            Bug ID: 292108
           Summary: devel/llvm12: fix build with clang 21
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: brooks@FreeBSD.org
          Reporter: dim@FreeBSD.org
          Assignee: brooks@FreeBSD.org
             Flags: maintainer-feedback?(brooks@FreeBSD.org)

Recent versions of clang complain about explicit copy constructors,
leading to errors similar to:

    In file included from
/wrkdirs/usr/ports/devel/llvm12/work/llvm-project-12.0.1.src/llvm/tools/sancov/sancov.cpp:16:
    In file included from
/wrkdirs/usr/ports/devel/llvm12/work/llvm-project-12.0.1.src/llvm/include/llvm/MC/MCContext.h:12:
   
/wrkdirs/usr/ports/devel/llvm12/work/llvm-project-12.0.1.src/llvm/include/llvm/ADT/DenseMap.h:128:16:
warning: variable 'NumEntries' set but not used [-Wunused-but-set-variable]
      128 |       unsigned NumEntries = getNumEntries();
          |                ^
   
/wrkdirs/usr/ports/devel/llvm12/work/llvm-project-12.0.1.src/llvm/tools/sancov/sancov.cpp:512:42:
error: chosen constructor is explicit in copy-initialization
      512 |     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) {
          |                                                                    
                      ^

In this case, `ClBlacklist` is an instance of `cl::opt`, not a
`std::string` as expected. Use `getValue()` to get the actual
`std::string` value.

-- 
You are receiving this mail because:
You are the assignee for the bug.