diff options
author | Tom Tromey <tom@tromey.com> | 2020-12-15 18:14:42 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2020-12-15 18:24:02 -0700 |
commit | 2adab65cc07f07a581d57b05dfbc100952fab748 (patch) | |
tree | cf31db8beca37152fd15d8fc9308350dc3cb0150 /gdb/tracepoint.c | |
parent | 1ab8280d7dbe01f51929d221621d38450f31895d (diff) | |
download | gdb-2adab65cc07f07a581d57b05dfbc100952fab748.zip gdb-2adab65cc07f07a581d57b05dfbc100952fab748.tar.gz gdb-2adab65cc07f07a581d57b05dfbc100952fab748.tar.bz2 |
Introduce expression::first_opcode
This adds a new helper method, expression::first_opcode, that extracts
the outermost opcode of an expression. This simplifies some patches
in the expression rewrite series.
Note that this patch requires the earlier patch to avoid manual
dissection of OP_TYPE operations.
2020-12-15 Tom Tromey <tom@tromey.com>
* varobj.c (varobj_create): Use first_opcode.
* value.c (init_if_undefined_command): Use first_opcode.
* typeprint.c (whatis_exp): Use first_opcode.
* tracepoint.c (validate_actionline): Use first_opcode.
(encode_actions_1): Use first_opcode.
* stack.c (return_command): Use first_opcode.
* expression.h (struct expression) <first_opcode>: New method.
* eval.c (parse_and_eval_type): Use first_opcode.
* dtrace-probe.c (dtrace_process_dof_probe): Use first_opcode.
Diffstat (limited to 'gdb/tracepoint.c')
-rw-r--r-- | gdb/tracepoint.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c index c2f923b..cb2b3b6 100644 --- a/gdb/tracepoint.c +++ b/gdb/tracepoint.c @@ -687,7 +687,7 @@ validate_actionline (const char *line, struct breakpoint *b) expression_up exp = parse_exp_1 (&p, loc->address, block_for_pc (loc->address), 1); - if (exp->elts[0].opcode == OP_VAR_VALUE) + if (exp->first_opcode () == OP_VAR_VALUE) { if (SYMBOL_CLASS (exp->elts[2].symbol) == LOC_CONST) { @@ -1383,7 +1383,7 @@ encode_actions_1 (struct command_line *action, block_for_pc (tloc->address), 1); - switch (exp->elts[0].opcode) + switch (exp->first_opcode ()) { case OP_REGISTER: { |