diff options
Diffstat (limited to 'gdb/valops.c')
-rw-r--r-- | gdb/valops.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gdb/valops.c b/gdb/valops.c index 0c07e5c..b9f5508 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -1343,8 +1343,16 @@ value_assign (struct value *toval, struct value *fromval) "don't fit in a %d bit word."), (int) sizeof (LONGEST) * HOST_CHAR_BIT); - get_frame_register_bytes (frame, value_reg, offset, - changed_len, buffer); + if (!get_frame_register_bytes (frame, value_reg, offset, + changed_len, buffer, + &optim, &unavail)) + { + if (optim) + error (_("value has been optimized out")); + if (unavail) + throw_error (NOT_AVAILABLE_ERROR, + _("value is not available")); + } modify_field (type, buffer, value_as_long (fromval), value_bitpos (toval), value_bitsize (toval)); |