diff options
author | Joel Brobecker <brobecker@gnat.com> | 2008-01-30 18:46:08 +0000 |
---|---|---|
committer | Joel Brobecker <brobecker@gnat.com> | 2008-01-30 18:46:08 +0000 |
commit | 80f064a256d119c77a33e01cf86f346240493b76 (patch) | |
tree | 28c5adb07e1f355b0d923997875a58a1aeda1405 /gdb | |
parent | 6e6c6f5087f4ad1c46f099e0edb175d526ebeee6 (diff) | |
download | gdb-80f064a256d119c77a33e01cf86f346240493b76.zip gdb-80f064a256d119c77a33e01cf86f346240493b76.tar.gz gdb-80f064a256d119c77a33e01cf86f346240493b76.tar.bz2 |
* eval.c (evaluate_subexp_standard): Add handling of user
registers when in EVAL_AVOID_SIDE_EFFECTS mode.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/eval.c | 10 |
2 files changed, 14 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 926af00..1c60b60 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -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 @@ -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)); |