diff options
author | Doug Evans <dje@google.com> | 2012-08-08 21:17:04 +0000 |
---|---|---|
committer | Doug Evans <dje@google.com> | 2012-08-08 21:17:04 +0000 |
commit | 4f485ebc90209b0bbe5e53cdec27ff15911b02ac (patch) | |
tree | 84a867fd9bdb2f43431ba263ffefade76089fdeb /gdb/eval.c | |
parent | 2acf2b3959a79d3bf2ec680b182dc55cf702d688 (diff) | |
download | binutils-gdb-4f485ebc90209b0bbe5e53cdec27ff15911b02ac.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; |