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.
This commit is contained in:
parent
1ab8280d7d
commit
2adab65cc0
9 changed files with 31 additions and 11 deletions
|
@ -91,6 +91,13 @@ struct expression
|
|||
|
||||
void resize (size_t);
|
||||
|
||||
/* Return the opcode for the outermost sub-expression of this
|
||||
expression. */
|
||||
enum exp_opcode first_opcode () const
|
||||
{
|
||||
return elts[0].opcode;
|
||||
}
|
||||
|
||||
/* Language it was entered in. */
|
||||
const struct language_defn *language_defn;
|
||||
/* Architecture it was parsed in. */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue