Building with C++ catches a buglet here:
../../../src/gdb/gdbserver/event-loop.c:205:19: warning: invalid conversion from ‘gdb_client_data {aka void*}’ to ‘void**’ [-fpermissive]
event_ptr->data = data;
^
This works in practice because gdb_client_data is a pointer already
(hence in C we get an implicit conversion), and nothing deferences the
pointer. It's passed from client at event registration/creation time,
only to pass straight back to client callback.
Well, that and nothing in gdbserver uses the event data anyway.
gdb/gdbserver/ChangeLog:
2015-07-10 Pedro Alves <palves@redhat.com>
* event-loop.c (struct callback_event) <data>: Change type to
gdb_client_data instance instead of gdb_client_data pointer.
(append_callback_event): Adjust.
+2015-07-10 Pedro Alves <palves@redhat.com>
+
+ * event-loop.c (struct callback_event) <data>: Change type to
+ gdb_client_data instance instead of gdb_client_data pointer.
+ (append_callback_event): Adjust.
+
2015-07-10 Pierre Langlois <pierre.langlois@arm.com>
* linux-aarch64-low.c: Add comments for each linux_target_ops
{
int id;
callback_handler_func *proc;
- gdb_client_data *data;
+ gdb_client_data data;
struct callback_event *next;
};
if (event_ptr != NULL)
{
callback_handler_func *proc = event_ptr->proc;
- gdb_client_data *data = event_ptr->data;
+ gdb_client_data data = event_ptr->data;
/* Remove the event before calling PROC,
more events may get added by PROC. */