Memory allocated with aligned_alloc() should be freed with free(), not with delete - although in our actual implemention those are really the same thing. gcc 11 warns about one such case, so instead of silencing the warning, let's make it use free().
Signed-off-by: Nadav Har'El <[email protected]> --- core/trace.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/trace.cc b/core/trace.cc index 4dd922ad..60fa18b9 100644 --- a/core/trace.cc +++ b/core/trace.cc @@ -61,16 +61,16 @@ constexpr size_t trace_page_size = 4096; // need not match arch page size // Having a struct is more complex than it need be for just per-vcpu buffers, // _but_ it is in line with later on having rotating buffers, thus wwhy not do it already struct trace_buf { - std::unique_ptr<char[]> + std::unique_ptr<char[], decltype(&free)> _base; size_t _last; size_t _size; trace_buf() : - _base(nullptr), _last(0), _size(0) { + _base(nullptr, free), _last(0), _size(0) { } trace_buf(size_t size) : - _base(static_cast<char*>(aligned_alloc(sizeof(long), size))), _last( + _base(static_cast<char*>(aligned_alloc(sizeof(long), size)), free), _last( 0), _size(size) { static_assert(is_power_of_two(trace_page_size), "just checking"); assert(is_power_of_two(size) && "size must be power of two"); -- 2.31.1 -- You received this message because you are subscribed to the Google Groups "OSv Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/osv-dev/20210614062057.1998552-9-nyh%40scylladb.com.
