From a3a88aa132605c5d42153a419c0e129296dec467 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Thu, 24 Oct 2024 23:42:36 +0200 Subject: [PATCH] Fix buildworld with gcc 13 after llvm-19 import It turns out the new libc++ 19 headers result in a -Werror warning from gcc 13: In file included from /usr/obj/usr/src/freebsd/src/amd64.amd64/tmp/usr/include/c++/v1/__memory/shared_ptr.h:31: /usr/obj/usr/src/freebsd/src/amd64.amd64/tmp/usr/include/c++/v1/__memory/uninitialized_algorithms.h: In instantiation of 'constexpr void std::__1::__uninitialized_allocator_relocate(_Alloc&, _Tp*, _Tp*, _Tp*) [with _Alloc = allocator >; _Tp = basic_string]': /usr/obj/usr/src/freebsd/src/amd64.amd64/tmp/usr/include/c++/v1/vector:1052:42: required from 'void std::__1::vector<_Tp, _Alloc>::__swap_out_circular_buffer(std::__1::__split_buffer<_Tp, _Allocator&>&) [with _Tp = std::__1::basic_string; _Allocator = std::__1::allocator >]' /usr/obj/usr/src/freebsd/src/amd64.amd64/tmp/usr/include/c++/v1/vector:1469:31: required from 'void std::__1::vector<_Tp, _Alloc>::reserve(size_type) [with _Tp = std::__1::basic_string; _Allocator = std::__1::allocator >; size_type = long unsigned int]' /usr/src/freebsd/src/contrib/googletest/googletest/src/gtest.cc:795:27: required from here /usr/obj/usr/src/freebsd/src/amd64.amd64/tmp/usr/include/c++/v1/__memory/uninitialized_algorithms.h:645:21: error: 'void* __builtin_memcpy(void*, const void*, long unsigned int)' writing to an object of type 'std::__1::__remove_const_t >' {aka 'class std::__1::basic_string'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead o[-Werror=class-memaccess] 645 | __builtin_memcpy(const_cast<__remove_const_t<_Tp>*>(__result), __first, sizeof(_Tp) * (__last - __first)); | ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/obj/usr/src/freebsd/src/amd64.amd64/tmp/usr/include/c++/v1/__system_error/error_category.h:15, from /usr/obj/usr/src/freebsd/src/amd64.amd64/tmp/usr/include/c++/v1/__system_error/error_code.h:18, from /usr/obj/usr/src/freebsd/src/amd64.amd64/tmp/usr/include/c++/v1/__ostream/basic_ostream.h:16: /usr/obj/usr/src/freebsd/src/amd64.amd64/tmp/usr/include/c++/v1/string:752:7: note: 'std::__1::__remove_const_t >' {aka 'class std::__1::basic_string'} declared here 752 | class basic_string { | ^~~~~~~~~~~~ Since this is all benign, turn off errors for -Wclass-memaccess. PR: 280562 MFC after: 3 days --- share/mk/bsd.sys.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/share/mk/bsd.sys.mk b/share/mk/bsd.sys.mk index 1934a79a542..63774e85716 100644 --- a/share/mk/bsd.sys.mk +++ b/share/mk/bsd.sys.mk @@ -221,6 +221,7 @@ CWARNFLAGS+= -Wno-error=aggressive-loop-optimizations \ -Wno-error=restrict \ -Wno-error=sizeof-pointer-memaccess \ -Wno-error=stringop-truncation +CXXWARNFLAGS+= -Wno-error=class-memaccess .endif # GCC 9.2.0