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.
+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.
+
2021-03-15 Tom Tromey <tromey@adacore.com>
* ada-exp.y (exp1): Handle resolution of the right hand side of an
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)
{