* ada-lang.c (ada_value_primitive_packed_val): Only check

value_lazy for memory lvals.
	* findvar.c (value_of_register_lazy): New function.
	(locate_var_value): Only check value_lazy for memory lvals.
	* valarith.c (value_subscripted_rvalue): Likewise.
	* valops.c (value_fetch_lazy): Handle both memory and register
	lvals.
	(search_struct_field, value_slice): Only check value_lazy for memory
	lvals.
	* value.c (struct value): Update comment for lazy.
	(value_primitive_field): Only check value_lazy for memory lvals.
	* value.h (value_lazy): Update comment.
	(value_of_register_lazy): Declare.
This commit is contained in:
Daniel Jacobowitz
2008-04-30 21:13:49 +00:00
parent 8d4e307105
commit 9214ee5f5f
7 changed files with 86 additions and 18 deletions

View File

@ -135,9 +135,9 @@ extern int value_embedded_offset (struct value *value);
extern void set_value_embedded_offset (struct value *value, int val);
/* If zero, contents of this value are in the contents field. If
nonzero, contents are in inferior memory at address in the
location.address field plus the offset field (and the lval field
should be lval_memory).
nonzero, contents are in inferior. If the lval field is lval_memory,
the contents are in inferior memory at location.address plus offset.
The lval field may also be lval_register.
WARNING: This field is used by the code which handles watchpoints
(see breakpoint.c) to decide whether a particular value can be
@ -301,6 +301,8 @@ extern struct value *value_of_variable (struct symbol *var, struct block *b);
extern struct value *value_of_register (int regnum, struct frame_info *frame);
struct value *value_of_register_lazy (struct frame_info *frame, int regnum);
extern int symbol_read_needs_frame (struct symbol *);
extern struct value *read_var_value (struct symbol *var,