mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:51:15 +08:00
Introduce ax_raw_byte and use it
This patch was taken directly from Pedro's branch. ax_simple is used to append an agent expression operator to an agent expression string. Therefore, it takes an enum agent_op as input. There is an instance where it's called to append a raw byte, unrelated to the enum. It makes the build fail in C++ mode. This patch introduces ax_raw_byte for that purpose and uses it. gdb/ChangeLog: * ax.h (ax_raw_byte): New declaration. * ax-general.c (ax_raw_byte): New function. (ax_simple): Use ax_raw_byte. * ax-gdb.c (gen_printf): Likewise.
This commit is contained in:
parent
a480de357b
commit
70b8286a97
@ -1,3 +1,10 @@
|
||||
2015-10-27 Simon Marchi <simon.marchi@polymtl.ca>
|
||||
|
||||
* ax.h (ax_raw_byte): New declaration.
|
||||
* ax-general.c (ax_raw_byte): New function.
|
||||
(ax_simple): Use ax_raw_byte.
|
||||
* ax-gdb.c (gen_printf): Likewise.
|
||||
|
||||
2015-10-27 Simon Marchi <simon.marchi@polymtl.ca>
|
||||
|
||||
* ada-lang.h (GROW_VECT): Add cast.
|
||||
|
@ -2564,7 +2564,7 @@ gen_printf (CORE_ADDR scope, struct gdbarch *gdbarch,
|
||||
|
||||
/* Issue the printf bytecode proper. */
|
||||
ax_simple (ax, aop_printf);
|
||||
ax_simple (ax, nargs);
|
||||
ax_raw_byte (ax, nargs);
|
||||
ax_string (ax, format, fmtlen);
|
||||
|
||||
/* And terminate. */
|
||||
|
@ -133,13 +133,20 @@ read_const (struct agent_expr *x, int o, int n)
|
||||
return accum;
|
||||
}
|
||||
|
||||
/* See ax.h. */
|
||||
|
||||
void
|
||||
ax_raw_byte (struct agent_expr *x, gdb_byte byte)
|
||||
{
|
||||
grow_expr (x, 1);
|
||||
x->buf[x->len++] = byte;
|
||||
}
|
||||
|
||||
/* Append a simple operator OP to EXPR. */
|
||||
void
|
||||
ax_simple (struct agent_expr *x, enum agent_op op)
|
||||
{
|
||||
grow_expr (x, 1);
|
||||
x->buf[x->len++] = op;
|
||||
ax_raw_byte (x, op);
|
||||
}
|
||||
|
||||
/* Append a pick operator to EXPR. DEPTH is the stack item to pick,
|
||||
|
3
gdb/ax.h
3
gdb/ax.h
@ -190,6 +190,9 @@ extern struct agent_expr *new_agent_expr (struct gdbarch *, CORE_ADDR);
|
||||
extern void free_agent_expr (struct agent_expr *);
|
||||
extern struct cleanup *make_cleanup_free_agent_expr (struct agent_expr *);
|
||||
|
||||
/* Append a raw byte to EXPR. */
|
||||
extern void ax_raw_byte (struct agent_expr *expr, gdb_byte byte);
|
||||
|
||||
/* Append a simple operator OP to EXPR. */
|
||||
extern void ax_simple (struct agent_expr *EXPR, enum agent_op OP);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user