mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-25 11:04:18 +08:00
ctf.c: Fix int/enum implicit cast
This patch was taken directly from Pedro's branch. Right now, SET_INT32_FIELD is used to set enum fields. This works in C, but not C++. Therefore, define the new SET_ENUM_FIELD, which casts the value to the right enum type. gdb/ChangeLog: * ctf.c (SET_ENUM_FIELD): New macro. (ctf_read_status): Use it. (ctf_read_tp): Use it.
This commit is contained in:
parent
4666280441
commit
e0d13cbd4b
@ -1,3 +1,9 @@
|
||||
2015-10-27 Simon Marchi <simon.marchi@polymtl.ca>
|
||||
|
||||
* ctf.c (SET_ENUM_FIELD): New macro.
|
||||
(ctf_read_status): Use it.
|
||||
(ctf_read_tp): Use it.
|
||||
|
||||
2015-10-27 Simon Marchi <simon.marchi@polymtl.ca>
|
||||
|
||||
* guile/scm-breakpoint.c (gdbscm_set_breakpoint_stop_x): Add
|
||||
|
10
gdb/ctf.c
10
gdb/ctf.c
@ -914,6 +914,12 @@ ctf_open_dir (const char *dirname)
|
||||
(SCOPE), \
|
||||
#FIELD))
|
||||
|
||||
#define SET_ENUM_FIELD(EVENT, SCOPE, VAR, TYPE, FIELD) \
|
||||
(VAR)->FIELD = (TYPE) bt_ctf_get_int64 (bt_ctf_get_field ((EVENT), \
|
||||
(SCOPE), \
|
||||
#FIELD))
|
||||
|
||||
|
||||
/* EVENT is the "status" event and TS is filled in. */
|
||||
|
||||
static void
|
||||
@ -922,7 +928,7 @@ ctf_read_status (struct bt_ctf_event *event, struct trace_status *ts)
|
||||
const struct bt_definition *scope
|
||||
= bt_ctf_get_top_level_scope (event, BT_EVENT_FIELDS);
|
||||
|
||||
SET_INT32_FIELD (event, scope, ts, stop_reason);
|
||||
SET_ENUM_FIELD (event, scope, ts, enum trace_stop_reason, stop_reason);
|
||||
SET_INT32_FIELD (event, scope, ts, stopping_tracepoint);
|
||||
SET_INT32_FIELD (event, scope, ts, traceframe_count);
|
||||
SET_INT32_FIELD (event, scope, ts, traceframes_created);
|
||||
@ -1058,7 +1064,7 @@ ctf_read_tp (struct uploaded_tp **uploaded_tps)
|
||||
SET_INT32_FIELD (event, scope, utp, step);
|
||||
SET_INT32_FIELD (event, scope, utp, pass);
|
||||
SET_INT32_FIELD (event, scope, utp, hit_count);
|
||||
SET_INT32_FIELD (event, scope, utp, type);
|
||||
SET_ENUM_FIELD (event, scope, utp, enum bptype, type);
|
||||
|
||||
/* Read 'cmd_strings'. */
|
||||
SET_ARRAY_FIELD (event, scope, utp, cmd_num, cmd_strings);
|
||||
|
Loading…
Reference in New Issue
Block a user