From efd7ff149a42c865cac422e3bafdf386c91c5373 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 15 Dec 2020 18:35:13 -0700 Subject: Add expected type parameter to evaluate_expression While working on the expression rewrite, I found a few spots that called the internal functions of the expression evaluator, just to pass in an expected type. This patch adds a parameter to evaluate_expression so that these functions can avoid this dependency. Regression tested on x86-64 Fedora 28. gdb/ChangeLog 2020-12-15 Tom Tromey * stap-probe.c (stap_probe::evaluate_argument): Use evaluate_expression. * dtrace-probe.c (dtrace_probe::evaluate_argument): Use evaluate_expression. * value.h (evaluate_expression): Add expect_type parameter. * objc-lang.c (print_object_command): Call evaluate_expression. * eval.c (evaluate_expression): Add expect_type parameter. --- gdb/eval.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'gdb/eval.c') diff --git a/gdb/eval.c b/gdb/eval.c index 2d088c8..c781fde 100644 --- a/gdb/eval.c +++ b/gdb/eval.c @@ -120,17 +120,15 @@ parse_to_comma_and_eval (const char **expp) return evaluate_expression (expr.get ()); } -/* Evaluate an expression in internal prefix form - such as is constructed by parse.y. - See expression.h for info on the format of an expression. */ +/* See value.h. */ struct value * -evaluate_expression (struct expression *exp) +evaluate_expression (struct expression *exp, struct type *expect_type) { int pc = 0; - return evaluate_subexp (nullptr, exp, &pc, EVAL_NORMAL); + return evaluate_subexp (expect_type, exp, &pc, EVAL_NORMAL); } /* Evaluate an expression, avoiding all memory references -- cgit v1.1