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  <tromey@adacore.com>

	PR ada/27545:
	* ada-lang.c (ada_var_value_operation::evaluate): Use recursive
	call for tagged type.
This commit is contained in:
Tom Tromey
2021-03-15 06:23:12 -06:00
parent 1ac7452264
commit 9863c3b5fc
2 changed files with 7 additions and 2 deletions

View File

@ -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)
{