summaryrefslogtreecommitdiff
path: root/gdb/eval.c
diff options
context:
space:
mode:
authorDoug Evans <dje@google.com>2012-08-08 21:17:03 +0000
committerDoug Evans <dje@google.com>2012-08-08 21:17:03 +0000
commit765eef0ea9c7b0e6648086b3d5a6c354ff312977 (patch)
tree8eaebc08551e46f0d4932aaf1ad702dc3ec6dff2 /gdb/eval.c
parent6351e1f17146b297a928f87db5f3f5af851dd56a (diff)
downloadgdb-765eef0ea9c7b0e6648086b3d5a6c354ff312977.tar.gz
* eval.c (evaluate_subexp_standard): Fix thinko in handling
UNOP_MEMVAL_TYPE. * expprint.c (print_subexp_standard, case OP_TYPE): New. (print_subexp_standard, case UNOP_CAST_TYPE): Don't increment pos. (print_subexp_standard, case UNOP_DYNAMIC_CAST): Ditto. (print_subexp_standard, case UNOP_REINTERPRET_CAST): Ditto. (print_subexp_standard, case UNOP_MEMVAL_TYPE): Ditto. (dump_subexp_body_standard, case UNOP_DYNAMIC_CAST): Don't increment elt. (dump_subexp_body_standard, case UNOP_REINTERPRET_CAST): Ditto. (dump_subexp_body_standard, case UNOP_CAST_TYPE): Ditto. (dump_subexp_body_standard, case UNOP_MEMVAL_TYPE): Ditto. (dump_prefix_expression): Handle OP_TYPE. testsuite/ * gdb.base/debug-expr.c: New file. * gdb.base/debug-expr.exp: New file. * gdb.base/exprs.exp: Test {type} casts. * gdb.cp/debug-expr.exp: New file.
Diffstat (limited to 'gdb/eval.c')
-rw-r--r--gdb/eval.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/gdb/eval.c b/gdb/eval.c
index 4253820719c..42958459b8c 100644
--- a/gdb/eval.c
+++ b/gdb/eval.c
@@ -2751,10 +2751,9 @@ evaluate_subexp_standard (struct type *expect_type,
if (noside == EVAL_SKIP)
goto nosideret;
if (noside == EVAL_AVOID_SIDE_EFFECTS)
- return value_zero (exp->elts[pc + 1].type, lval_memory);
+ return value_zero (type, lval_memory);
else
- return value_at_lazy (exp->elts[pc + 1].type,
- value_as_address (arg1));
+ return value_at_lazy (type, value_as_address (arg1));
case UNOP_MEMVAL_TLS:
(*pos) += 3;