* eval.c (evaluate_subexp_standard): Add handling of user
registers when in EVAL_AVOID_SIDE_EFFECTS mode.
This commit is contained in:
parent
6e6c6f5087
commit
80f064a256
2 changed files with 14 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2008-01-30 Joel Brobecker <brobecker@adacore.com>
|
||||
|
||||
* eval.c (evaluate_subexp_standard): Add handling of user
|
||||
registers when in EVAL_AVOID_SIDE_EFFECTS mode.
|
||||
|
||||
2008-01-30 Pierre Muller <muller@ics.u-strasbg.fr>
|
||||
|
||||
* eval.c (evaluate_subexp_standard): Support
|
||||
|
|
10
gdb/eval.c
10
gdb/eval.c
|
@ -512,7 +512,15 @@ evaluate_subexp_standard (struct type *expect_type,
|
|||
name, strlen (name));
|
||||
if (regno == -1)
|
||||
error (_("Register $%s not available."), name);
|
||||
if (noside == EVAL_AVOID_SIDE_EFFECTS)
|
||||
|
||||
/* In EVAL_AVOID_SIDE_EFFECTS mode, we only need to return
|
||||
a value with the appropriate register type. Unfortunately,
|
||||
we don't have easy access to the type of user registers.
|
||||
So for these registers, we fetch the register value regardless
|
||||
of the evaluation mode. */
|
||||
if (noside == EVAL_AVOID_SIDE_EFFECTS
|
||||
&& regno < gdbarch_num_regs (current_gdbarch)
|
||||
+ gdbarch_num_pseudo_regs (current_gdbarch))
|
||||
val = value_zero (register_type (current_gdbarch, regno), not_lval);
|
||||
else
|
||||
val = value_of_register (regno, get_selected_frame (NULL));
|
||||
|
|
Loading…
Reference in a new issue