From: Tom de Vries Date: Thu, 11 Nov 2021 10:22:39 +0000 (+0100) Subject: [gdb/build] Fix Wimplicit-exception-spec-mismatch in clang build X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fdf95218bc08c60ef4528eb67b03643fdd16f036;p=binutils-gdb.git [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. --- 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); }