Fix bug in value_bits_valid.

http://sourceware.org/ml/gdb-patches/2013-07/msg00174.html

	* value.c (value_bits_valid): If the value is not lval_computed
	or has no check validity handler then the answer is the
	optimized_out flag, otherwise defer to the handler.
This commit is contained in:
Andrew Burgess 2013-07-08 10:21:33 +00:00
parent 0cbbe1b85e
commit ad0f030310
2 changed files with 11 additions and 5 deletions

View File

@ -1,3 +1,10 @@
2013-07-08 Andrew Burgess <aburgess@broadcom.com>
Pedro Alves <palves@redhat.com>
* value.c (value_bits_valid): If the value is not lval_computed
or has no check validity handler then the answer is the
optimized_out flag, otherwise defer to the handler.
2013-07-06 Eli Zaretskii <eliz@gnu.org> 2013-07-06 Eli Zaretskii <eliz@gnu.org>
* top.c (print_gdb_configuration): Explain in output of * top.c (print_gdb_configuration): Explain in output of

View File

@ -1082,13 +1082,12 @@ value_entirely_optimized_out (const struct value *value)
int int
value_bits_valid (const struct value *value, int offset, int length) value_bits_valid (const struct value *value, int offset, int length)
{ {
if (!value->optimized_out)
return 1;
if (value->lval != lval_computed if (value->lval != lval_computed
|| !value->location.computed.funcs->check_validity) || !value->location.computed.funcs->check_validity)
return 1; return !value->optimized_out;
return value->location.computed.funcs->check_validity (value, offset, else
length); return value->location.computed.funcs->check_validity (value, offset,
length);
} }
int int