From fdf95218bc08c60ef4528eb67b03643fdd16f036 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Thu, 11 Nov 2021 11:22:39 +0100 Subject: [PATCH] [gdb/build] Fix Wimplicit-exception-spec-mismatch in clang build When building with clang 13 (and -std=gnu++17 to work around an issue in string_view-selftests.c), we run into a few Wimplicit-exception-spec-mismatch warnings: ... src/gdbsupport/new-op.cc:102:1: error: function previously declared with an \ explicit exception specification redeclared with an implicit exception \ specification [-Werror,-Wimplicit-exception-spec-mismatch] operator delete (void *p) ^ /usr/include/c++/11/new:130:6: note: previous declaration is here void operator delete(void*) _GLIBCXX_USE_NOEXCEPT ^ ... These are due to recent commit 5fff6115fea "Fix LD_PRELOAD=/usr/lib64/libasan.so.6 gdb". Fix this by adding the missing noexcept. Build on x86_64-linux, using gcc 7.5.0 and clang 13.0.0. --- gdbsupport/new-op.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gdbsupport/new-op.cc b/gdbsupport/new-op.cc index 716fa1a66de..2fe5f648abb 100644 --- a/gdbsupport/new-op.cc +++ b/gdbsupport/new-op.cc @@ -104,7 +104,7 @@ operator new[] (std::size_t sz, const std::nothrow_t&) noexcept errors from AddressSanitizers. */ void -operator delete (void *p) +operator delete (void *p) noexcept { free (p); } @@ -122,7 +122,7 @@ operator delete (void *p, std::size_t) noexcept } void -operator delete[] (void *p) +operator delete[] (void *p) noexcept { return ::operator delete (p); } -- 2.30.2