binutils-gdb/gdb/common
Pedro Alves e7c9de2678 Allow gdb::unique_xmalloc_ptr<T[]>
Currently, if you try to use the array version of
gdb::unique_xmalloc_ptr (i.e., std::unique_ptr) in order to have
access to operator[], like:

  gdb::unique_xmalloc_ptr<char[]> buf ((char *) xmalloc (10));
  return buf[0];

then the build fails, like:

  /usr/include/c++/5.3.1/bits/unique_ptr.h: In instantiation of ‘std::unique_ptr<_Tp [], _Dp>::~unique_ptr() [with _Tp = char; _Dp = gdb::xfree_deleter<char []>]’:
  main.c:30:61:   required from here
  /usr/include/c++/5.3.1/bits/unique_ptr.h:484:17: error: no match for call to ‘(std::unique_ptr<char [], gdb::xfree_deleter<char []> >::deleter_type {aka gdb::xfree_deleter<char []>}) (char*&)’
      get_deleter()(__ptr);
		   ^
  In file included from src/gdb/common/common-defs.h:92:0,
		   from src/gdb/defs.h:28,
		   from src/gdb/main.c:20:
  src/gdb/common/gdb_unique_ptr.h:34:8: note: candidate: void gdb::xfree_deleter<T>::operator()(T*) const [with T = char []]
     void operator() (T *ptr) const { xfree (ptr); }
	  ^
  src/gdb/common/gdb_unique_ptr.h:34:8: note:   no known conversion for argument 1 from ‘char*’ to ‘char (*)[]’
  Makefile:1911: recipe for target 'main.o' failed
  make: *** [main.o] Error 1

The problem is that we're missing an xfree_deleter specialization for
arrays.

gdb/ChangeLog:
2017-08-10  Pedro Alves  <palves@redhat.com>

	* common/gdb_unique_ptr.h (xfree_deleter<T[]>): Define.
2017-08-10 14:18:02 +01:00
..
agent.c
agent.h Add STRINGIFY to gdb/common/preprocessor.h 2017-06-22 10:59:42 +01:00
ax.def
break-common.h
btrace-common.c
btrace-common.h
buffer.c
buffer.h buffer.h: Fix spelling mistakes 2017-07-03 13:59:00 +02:00
byte-vector.h Introduce gdb::byte_vector, add allocator that default-initializes 2017-06-14 11:08:52 +01:00
cleanups.c
cleanups.h
common-debug.c
common-debug.h
common-defs.h Poison non-POD memset & non-trivially-copyable memcpy/memmove 2017-04-25 01:46:19 +01:00
common-exceptions.c
common-exceptions.h
common-gdbthread.h Share parts of gdb/gdbthread.h with gdbserver 2017-06-07 19:56:01 -04:00
common-inferior.h Share fork_inferior et al with gdbserver 2017-06-07 19:56:09 -04:00
common-regcache.c
common-regcache.h
common-types.h
common-utils.c Fix possible bug when no args have been provided to the executable 2017-06-08 16:58:25 -04:00
common-utils.h Share fork_inferior et al with gdbserver 2017-06-07 19:56:09 -04:00
common.host
common.m4 Create gdb_termios.h (and cleanup gdb/{,gdbserver/}terminal.h) 2017-04-12 17:59:45 -04:00
create-version.sh
def-vector.h Introduce gdb::byte_vector, add allocator that default-initializes 2017-06-14 11:08:52 +01:00
default-init-alloc.h Introduce gdb::byte_vector, add allocator that default-initializes 2017-06-14 11:08:52 +01:00
diagnostics.h vec: Silence -Wunused-function warnings on clang 2017-06-26 16:51:17 +02:00
enum-flags.h Don't memcpy non-trivially-copyable types: Make enum_flags triv. copyable 2017-04-25 01:42:03 +01:00
environ.c Update comment on gdb_environ::unset 2017-06-22 14:50:24 -04:00
environ.h C++ify gdb/common/environ.c 2017-06-20 08:59:27 -04:00
errors.c
errors.h
fileio.c
fileio.h
filestuff.c Introduce and use gdb_file_up 2017-08-03 07:58:52 -06:00
filestuff.h Introduce and use gdb_file_up 2017-08-03 07:58:52 -06:00
format.c
format.h
function-view.h Poison non-POD memset & non-trivially-copyable memcpy/memmove 2017-04-25 01:46:19 +01:00
gdb_assert.h
gdb_locale.h
gdb_optional.h More gdb::optional features 2017-04-18 23:48:41 +01:00
gdb_ref_ptr.h
gdb_setjmp.h
gdb_signals.h
gdb_sys_time.h
gdb_termios.h Create gdb_termios.h (and cleanup gdb/{,gdbserver/}terminal.h) 2017-04-12 17:59:45 -04:00
gdb_unique_ptr.h Allow gdb::unique_xmalloc_ptr<T[]> 2017-08-10 14:18:02 +01:00
gdb_unlinker.h
gdb_vecs.c
gdb_vecs.h Remove definition of VEC (CORE_ADDR) 2017-05-02 13:30:09 -04:00
gdb_wait.h
host-defs.h
job-control.c Move parts of inferior job control to common/ 2017-06-07 19:52:56 -04:00
job-control.h Move parts of inferior job control to common/ 2017-06-07 19:52:56 -04:00
mingw-strerror.c
new-op.c
offset-type.h Make sect_offset and cu_offset strong typedefs instead of structs 2017-04-04 20:03:26 +01:00
poison.h Fix build on gcc < 5 (std::is_trivially_copyable missing) 2017-04-25 10:58:57 +01:00
posix-strerror.c
preprocessor.h Add STRINGIFY to gdb/common/preprocessor.h 2017-06-22 10:59:42 +01:00
print-utils.c -Wwrite-strings: The Rest 2017-04-05 19:21:37 +01:00
print-utils.h
ptid.c Class-ify ptid_t 2017-04-06 23:29:53 -04:00
ptid.h Class-ify ptid_t 2017-04-06 23:29:53 -04:00
queue.h
refcounted-object.h Fix removing inferiors from within "thread apply" commands 2017-04-19 13:12:23 +01:00
rsp-low.c
rsp-low.h
run-time-clock.c
run-time-clock.h
scoped_restore.h Make inferior::detaching a bool, and introduce scoped_restore::release() 2017-04-19 13:12:23 +01:00
signals-state-save-restore.c
signals-state-save-restore.h
signals.c
symbol.h
traits.h Fix build on gcc < 5 (std::is_trivially_copyable missing) 2017-04-25 10:58:57 +01:00
underlying.h
valid-expr.h Make sect_offset and cu_offset strong typedefs instead of structs 2017-04-04 20:03:26 +01:00
vec.c
vec.h vec: Silence -Wunused-function warnings on clang 2017-06-26 16:51:17 +02:00
version.h
x86-xstate.h
xml-utils.c
xml-utils.h