diff options
author | Doug Evans <dje@google.com> | 2012-08-08 21:17:03 +0000 |
---|---|---|
committer | Doug Evans <dje@google.com> | 2012-08-08 21:17:03 +0000 |
commit | 765eef0ea9c7b0e6648086b3d5a6c354ff312977 (patch) | |
tree | 8eaebc08551e46f0d4932aaf1ad702dc3ec6dff2 /gdb/eval.c | |
parent | 6351e1f17146b297a928f87db5f3f5af851dd56a (diff) | |
download | gdb-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.c | 5 |
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; |