Add noexcept to custom non-throwing new operators.
authorJohn Baldwin <jhb@FreeBSD.org>
Thu, 24 Nov 2016 20:01:24 +0000 (12:01 -0800)
committerJohn Baldwin <jhb@FreeBSD.org>
Thu, 24 Nov 2016 20:01:24 +0000 (12:01 -0800)
Both libc++ and libstdc++ declare non-throwing new operators as
noexcept and overloads must also be noexcept.  This fixes a
-Wmissing-exception-spec warning with clang.

gdb/ChangeLog:

* common/new-op.c (operator new): Mark 'noexcept'.
(operator new[]): Likewise.

gdb/ChangeLog
gdb/common/new-op.c

index 51787ad..9dc2618 100644 (file)
@@ -1,3 +1,8 @@
+2016-11-24  John Baldwin  <jhb@FreeBSD.org>
+
+       * common/new-op.c (operator new): Mark 'noexcept'.
+       (operator new[]): Likewise.
+
 2016-11-24  Andreas Arnez  <arnez@linux.vnet.ibm.com>
 
        * dwarf2loc.c (copy_bitwise): Use memcpy for the middle part, if
index 1eb4f94..c67239c 100644 (file)
@@ -76,7 +76,7 @@ operator new (std::size_t sz)
 }
 
 void *
-operator new (std::size_t sz, const std::nothrow_t&)
+operator new (std::size_t sz, const std::nothrow_t&) noexcept
 {
   /* malloc (0) is unpredictable; avoid it.  */
   if (sz == 0)
@@ -91,7 +91,7 @@ operator new[] (std::size_t sz)
 }
 
 void*
-operator new[] (std::size_t sz, const std::nothrow_t&)
+operator new[] (std::size_t sz, const std::nothrow_t&) noexcept
 {
   return ::operator new (sz, std::nothrow);
 }