Introduce gdb::function_view
authorPedro Alves <palves@redhat.com>
Thu, 23 Feb 2017 16:14:08 +0000 (16:14 +0000)
committerPedro Alves <palves@redhat.com>
Thu, 23 Feb 2017 16:14:08 +0000 (16:14 +0000)
commit07e253aa3b7a530f22b84053e661842ccd9da2ea
tree20dc7cea2b67f76f68844e81e5c035fb8413a551
parent1e9d41d49f7f0b9e7381e8bf8ce848f8a33b8fde
Introduce gdb::function_view

This commit adds a new function_view type.  This type holds a
non-owning reference to a callable.  It is meant to be used as
callback type of functions, instead of using the C-style pair of
function pointer and 'void *data' arguments.  function_view allows
passing references to stateful function objects / lambdas with
captures as callbacks efficiently, while function pointer + 'void *'
does not.

See the intro in the new function-view.h header for more.

Unit tests included, put into a new gdb/unittests/ subdir.

gdb/ChangeLog:
2017-02-23  Pedro Alves  <palves@redhat.com>

* Makefile.in (SUBDIR_UNITTESTS_SRCS, SUBDIR_UNITTESTS_OBS): New.
(%.o) <unittests/%.c>: New pattern.
* configure.ac ($development): Add $(SUBDIR_UNITTESTS_OBS) to
CONFIG_OBS, and $(SUBDIR_UNITTESTS_SRCS) to CONFIG_SRCS.
* common/function-view.h: New file.
* unittests/function-view-selftests.c: New file.
* configure: Regenerate.
gdb/ChangeLog
gdb/Makefile.in
gdb/common/function-view.h [new file with mode: 0644]
gdb/configure
gdb/configure.ac
gdb/unittests/function-view-selftests.c [new file with mode: 0644]