summaryrefslogtreecommitdiff
path: root/gdb/eval.c
diff options
context:
space:
mode:
authorDoug Evans <dje@google.com>2012-08-08 21:17:04 +0000
committerDoug Evans <dje@google.com>2012-08-08 21:17:04 +0000
commit4f485ebc90209b0bbe5e53cdec27ff15911b02ac (patch)
tree84a867fd9bdb2f43431ba263ffefade76089fdeb /gdb/eval.c
parent2acf2b3959a79d3bf2ec680b182dc55cf702d688 (diff)
downloadbinutils-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.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;