Use allocate_optimized_out_value instead of set_value_optimized_out.

Allocate the value as optimized out from the start rather than allocating
a value with contents, and then marking it optimized out.

gdb/
2013-07-04  Pedro Alves  <palves@redhat.com>

	* findvar.c (value_of_register): Use allocate_optimized_out_value
	if the register has been optimized out, instead of
	set_value_optimized_out.
	* frame-unwind.c (frame_unwind_got_optimized): Use
	allocate_optimized_out_value.
This commit is contained in:
Pedro Alves
2013-07-04 18:10:04 +00:00
parent 58722cac5a
commit 7195e6f018
3 changed files with 16 additions and 6 deletions

View File

@@ -162,11 +162,9 @@ struct value *
frame_unwind_got_optimized (struct frame_info *frame, int regnum)
{
struct gdbarch *gdbarch = frame_unwind_arch (frame);
struct value *reg_val;
struct type *reg_type = register_type (gdbarch, regnum);
reg_val = value_zero (register_type (gdbarch, regnum), not_lval);
set_value_optimized_out (reg_val, 1);
return reg_val;
return allocate_optimized_out_value (reg_type);
}
/* Return a value which indicates that FRAME copied REGNUM into