From 9863c3b5fc64eec400ed55792a49c678927a6145 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Mon, 15 Mar 2021 06:23:12 -0600 Subject: Fix regression in Ada ptype This fixes PR ada/27545, which points out that a test in gdb.ada/tagged.exp started failing due to the expression rewrite. I didn't notice this failure because my system gcc-gnat debuginfo was out of date, and so the test was already failing in the baseline. Previously, the OP_VAR_VALUE case in ada_evaluate_subexp ended up doing a recursive call: arg1 = evaluate_subexp (nullptr, exp, pos, EVAL_NORMAL); However, during the rewrite I missed this fact and had the new code call the superclass implementation. This patch fixes the bug by changing this code to use a recursive call instead. gdb/ChangeLog 2021-03-15 Tom Tromey PR ada/27545: * ada-lang.c (ada_var_value_operation::evaluate): Use recursive call for tagged type. --- gdb/ada-lang.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'gdb/ada-lang.c') diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index ea43a25..07958e7 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -10320,8 +10320,7 @@ ada_var_value_operation::evaluate (struct type *expect_type, a fixed type would result in the loss of that type name, thus preventing us from printing the name of the ancestor type in the type description. */ - value *arg1 = var_value_operation::evaluate (nullptr, exp, - EVAL_NORMAL); + value *arg1 = evaluate (nullptr, exp, EVAL_NORMAL); if (type->code () != TYPE_CODE_REF) { -- cgit v1.1