[gdb/build] Fix build with -std=c++11
When building with -std=c++11, we run into two Werror=missing-declarations:
...
new-op.cc: In function 'void operator delete(void*, std::size_t)':
new-op.cc:114:1: error: no previous declaration for \
'void operator delete(void*, std::size_t)' [-Werror=missing-declarations]
operator delete (void *p, std::size_t) noexcept
^~~~~~~~
new-op.cc: In function 'void operator delete [](void*, std::size_t)':
new-op.cc:132:1: error: no previous declaration for \
'void operator delete [](void*, std::size_t)' [-Werror=missing-declarations]
operator delete[] (void *p, std::size_t) noexcept
^~~~~~~~
...
These are due to recent commit 5fff6115fe
"Fix
LD_PRELOAD=/usr/lib64/libasan.so.6 gdb".
The declarations are provided by <new> (which is included) for c++14 onwards,
but they are missing for c++11.
Fix this by adding the missing declarations.
Tested on x86_64-linux, with gcc 7.5.0, both without (implying -std=gnu++14) and
with -std=c++11.
This commit is contained in:
parent
585d6e39eb
commit
b038b53f1f
1 changed files with 5 additions and 0 deletions
|
@ -27,6 +27,11 @@
|
|||
#include "host-defs.h"
|
||||
#include <new>
|
||||
|
||||
/* These are declared in <new> starting C++14. Add these here to enable
|
||||
compilation using C++11. */
|
||||
extern void operator delete (void *p, std::size_t) noexcept;
|
||||
extern void operator delete[] (void *p, std::size_t) noexcept;
|
||||
|
||||
/* Override operator new / operator new[], in order to internal_error
|
||||
on allocation failure and thus query the user for abort/core
|
||||
dump/continue, just like xmalloc does. We don't do this from a
|
||||
|
|
Loading…
Add table
Reference in a new issue