Adjust Value.location for lval_register
authorYao Qi <yao.qi@linaro.org>
Mon, 28 Nov 2016 17:09:26 +0000 (17:09 +0000)
committerYao Qi <yao.qi@linaro.org>
Mon, 28 Nov 2016 17:09:26 +0000 (17:09 +0000)
commit7dc54575d91a2b41f6c3e838eec44a7017a24436
tree5140ebb00b483d631739e03184a30d5ce672f564
parentee40d8d45213caf0cfb63e603f0fd5a58532e751
Adjust Value.location for lval_register

value.regnum and value.next_frame_id are only used for lval_register,
so this patch moves them to union value.location.  As a result, when
we copy value, only copy location, don't need to copy regnum and
next_frame_id.

This patch also changes regnum's type to int as there is no space
constraint, so update deprecated_value_regnum_hack return type too.

gdb:

2016-11-28  Yao Qi  <yao.qi@linaro.org>

* valops.c (value_slice): Don't set frame id of slice.
* value.c (struct value) <regnum, next_frame_id>: Move them to...
(struct value) <location>: ... here.  Update comments.
(allocate_value_lazy): Don't set frame id and regnum.
(deprecated_value_next_frame_id_hack): Adjust.
(deprecated_value_regnum_hack): Adjust.
(value_copy): Don't copy frame id and regnu.
(value_primitive_field): Likewise.
(value_from_component): Likewise.
(deprecated_value_regnum_hack): Return int *.
* value.h (deprecated_value_regnum_hack): Update declaration.
gdb/valops.c
gdb/value.c
gdb/value.h