[2/3] Add noexcept to custom non-throwing new operators.
Commit Message
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 | 5 +++++
gdb/common/new-op.c | 4 ++--
2 files changed, 7 insertions(+), 2 deletions(-)
Comments
On 11/23/2016 08:06 PM, John Baldwin wrote:
> 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.
OK.
Thanks,
Pedro Alves
@@ -1,5 +1,10 @@
2016-11-23 John Baldwin <jhb@FreeBSD.org>
+ * common/new-op.c (operator new): Mark 'noexcept'.
+ (operator new[]): Likewise.
+
+2016-11-23 John Baldwin <jhb@FreeBSD.org>
+
* breakpoint.h (class number_or_range_parser): Use 'class' instead of
'struct'.
* mi/mi-main.c (mi_cmd_trace_frame_collected): Use
@@ -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);
}