From 2adab65cc07f07a581d57b05dfbc100952fab748 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 15 Dec 2020 18:14:42 -0700 Subject: 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 * 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) : New method. * eval.c (parse_and_eval_type): Use first_opcode. * dtrace-probe.c (dtrace_process_dof_probe): Use first_opcode. --- gdb/typeprint.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gdb/typeprint.c') diff --git a/gdb/typeprint.c b/gdb/typeprint.c index 2f671d9..4987771 100644 --- a/gdb/typeprint.c +++ b/gdb/typeprint.c @@ -493,7 +493,7 @@ whatis_exp (const char *exp, int show) val = evaluate_type (expr.get ()); type = value_type (val); - if (show == -1 && expr->elts[0].opcode == OP_TYPE) + if (show == -1 && expr->first_opcode () == OP_TYPE) { /* The user expression names a type directly. */ -- cgit v1.1