The branch main has been updated by jhb:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=5c504c625d1faffd7cc7c3dfece62c72c012b4c5

commit 5c504c625d1faffd7cc7c3dfece62c72c012b4c5
Author:     John Baldwin <[email protected]>
AuthorDate: 2026-01-27 18:39:41 +0000
Commit:     John Baldwin <[email protected]>
CommitDate: 2026-01-27 18:39:41 +0000

    kyua: Workaround unclear warning from GCC
    
    GCC 15 does not like a push_back() invocation in utils::find_core()
    and incorrectly believes libc++ will free a non-heap pointer.  Disable
    the warning to pacify GCC.
    
    In function 'void std::__1::__libcpp_operator_delete(_Args ...) [with _Args 
= {void*, long unsigned int}]',
        inlined from 'void std::__1::__do_deallocate_handle_size(void*, size_t, 
_Args ...) [with _Args = {}]' at 
/usr/obj/.../amd64.amd64/tmp/usr/include/c++/v1/new:298:39,
        inlined from 'void std::__1::__libcpp_deallocate(void*, size_t, 
size_t)' at /usr/obj/.../amd64.amd64/tmp/usr/include/c++/v1/new:311:39,
        inlined from 'void std::__1::allocator<_Tp>::deallocate(_Tp*, size_t) 
[with _Tp = utils::fs::path]' at 
/usr/obj/.../amd64.amd64/tmp/usr/include/c++/v1/__memory/allocator.h:132:31,
        inlined from 'static void 
std::__1::allocator_traits<_Alloc>::deallocate(allocator_type&, pointer, 
size_type) [with _Alloc = std::__1::allocator<utils::fs::path>]' at 
/usr/obj/.../amd64.amd64/tmp/usr/include/c++/v1/__memory/allocator_traits.h:314:19,
        inlined from 'std::__1::__split_buffer<_Tp, 
_Allocator>::~__split_buffer() [with _Tp = utils::fs::path; _Allocator = 
std::__1::allocator<utils::fs::path>&]' at 
/usr/obj/.../amd64.amd64/tmp/usr/include/c++/v1/__split_buffer:365:31,
        inlined from 'std::__1::vector<_Tp, _Alloc>::pointer 
std::__1::vector<_Tp, _Alloc>::__push_back_slow_path(_Up&&) [with _Up = 
utils::fs::path; _Tp = utils::fs::path; _Allocator = 
std::__1::allocator<utils::fs::path>]' at 
/usr/obj/.../amd64.amd64/tmp/usr/include/c++/v1/vector:1504:1,
        inlined from 'void std::__1::vector<_Tp, 
_Alloc>::push_back(value_type&&) [with _Tp = utils::fs::path; _Allocator = 
std::__1::allocator<utils::fs::path>]' at 
/usr/obj/.../amd64.amd64/tmp/usr/include/c++/v1/vector:1526:34,
        inlined from 'utils::optional<utils::fs::path> utils::find_core(const 
fs::path&, const process::status&, const fs::path&)' at 
contrib/kyua/utils/stacktrace.cpp:217:25:
    /usr/obj/.../amd64.amd64/tmp/usr/include/c++/v1/new:274:38: error: 'void 
operator delete(void*, size_t)' called on pointer '<unknown>' with nonzero 
offset [24, 9223372036854775807] [-Werror=free-nonheap-object]
      274 |   __builtin_operator_delete(__args...);
          |                                      ^
    In function 'void* std::__1::__libcpp_operator_new(_Args ...) [with _Args = 
{long unsigned int}]',
        inlined from 'void* std::__1::__libcpp_allocate(size_t, size_t)' at 
/usr/obj/.../amd64.amd64/tmp/usr/include/c++/v1/new:289:31,
        inlined from '_Tp* std::__1::allocator<_Tp>::allocate(size_t) [with _Tp 
= utils::fs::path]' at 
/usr/obj/.../amd64.amd64/tmp/usr/include/c++/v1/__memory/allocator.h:118:54,
        inlined from 'constexpr std::__1::__allocation_result<typename 
std::__1::allocator_traits<_Alloc>::pointer> 
std::__1::__allocate_at_least(_Alloc&, size_t) [with _Alloc = 
allocator<utils::fs::path>]' at 
/usr/obj/.../amd64.amd64/tmp/usr/include/c++/v1/__memory/allocate_at_least.h:41:27,
        inlined from 'std::__1::__split_buffer<_Tp, 
_Allocator>::__split_buffer(size_type, size_type, __alloc_rr&) [with _Tp = 
utils::fs::path; _Allocator = std::__1::allocator<utils::fs::path>&]' at 
/usr/obj/.../amd64.amd64/tmp/usr/include/c++/v1/__split_buffer:353:49,
        inlined from 'std::__1::vector<_Tp, _Alloc>::pointer 
std::__1::vector<_Tp, _Alloc>::__push_back_slow_path(_Up&&) [with _Up = 
utils::fs::path; _Tp = utils::fs::path; _Allocator = 
std::__1::allocator<utils::fs::path>]' at 
/usr/obj/.../amd64.amd64/tmp/usr/include/c++/v1/vector:1498:47,
        inlined from 'void std::__1::vector<_Tp, 
_Alloc>::push_back(value_type&&) [with _Tp = utils::fs::path; _Allocator = 
std::__1::allocator<utils::fs::path>]' at 
/usr/obj/.../amd64.amd64/tmp/usr/include/c++/v1/vector:1526:34,
        inlined from 'utils::optional<utils::fs::path> utils::find_core(const 
fs::path&, const process::status&, const fs::path&)' at 
contrib/kyua/utils/stacktrace.cpp:216:25:
    /usr/obj/.../amd64.amd64/tmp/usr/include/c++/v1/new:265:42: note: returned 
from 'void* operator new(size_t)'
      265 |   return __builtin_operator_new(__args...);
          |                                          ^
    
    Reviewed by:    imp, dim
    Differential Revision:  https://reviews.freebsd.org/D54868
---
 usr.bin/kyua/Makefile | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/usr.bin/kyua/Makefile b/usr.bin/kyua/Makefile
index d6131651afbf..aa0e5cbbcad2 100644
--- a/usr.bin/kyua/Makefile
+++ b/usr.bin/kyua/Makefile
@@ -49,6 +49,8 @@ CFLAGS+=      -DGDB=\"/usr/local/bin/gdb\"                    
\
                -DPACKAGE_VERSION=\"${KYUA_VERSION}\"           \
                -DVERSION=\"${KYUA_VERSION}\"
 
+CXXWARNFLAGS.gcc+=     -Wno-free-nonheap-object
+
 SRCS+= utils/datetime.cpp                      \
        utils/env.cpp                           \
        utils/memory.cpp                        \

Reply via email to