aboutsummaryrefslogtreecommitdiff
path: root/gdb/value.c
diff options
context:
space:
mode:
authorAndrew Burgess <aburgess@broadcom.com>2013-07-08 10:21:33 +0000
committerAndrew Burgess <aburgess@broadcom.com>2013-07-08 10:21:33 +0000
commitad0f030310315704eeb4651460edb548fad21a02 (patch)
tree5f7d47afaf072ba282cb361eaa1cf43319a13620 /gdb/value.c
parent0cbbe1b85eef405c0ddb22389f85a65d8a8bf28c (diff)
downloadgdb-ad0f030310315704eeb4651460edb548fad21a02.zip
gdb-ad0f030310315704eeb4651460edb548fad21a02.tar.gz
gdb-ad0f030310315704eeb4651460edb548fad21a02.tar.bz2
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.
Diffstat (limited to 'gdb/value.c')
-rw-r--r--gdb/value.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/gdb/value.c b/gdb/value.c
index 353f62a..1be1845 100644
--- a/gdb/value.c
+++ b/gdb/value.c
@@ -1082,13 +1082,12 @@ value_entirely_optimized_out (const struct value *value)
int
value_bits_valid (const struct value *value, int offset, int length)
{
- if (!value->optimized_out)
- return 1;
if (value->lval != lval_computed
|| !value->location.computed.funcs->check_validity)
- return 1;
- return value->location.computed.funcs->check_validity (value, offset,
- length);
+ return !value->optimized_out;
+ else
+ return value->location.computed.funcs->check_validity (value, offset,
+ length);
}
int