aboutsummaryrefslogtreecommitdiff
path: root/gdb/ada-lang.c
diff options
context:
space:
mode:
authorYao Qi <yao.qi@linaro.org>2016-11-28 17:09:26 +0000
committerYao Qi <yao.qi@linaro.org>2016-11-28 17:09:26 +0000
commit1a0884415891b197972f8acf59131c3c9376807f (patch)
treea21ab7f391d1ac92611c0142f2fc35dd01a281a3 /gdb/ada-lang.c
parent7dc54575d91a2b41f6c3e838eec44a7017a24436 (diff)
downloadgdb-1a0884415891b197972f8acf59131c3c9376807f.zip
gdb-1a0884415891b197972f8acf59131c3c9376807f.tar.gz
gdb-1a0884415891b197972f8acf59131c3c9376807f.tar.bz2
Restrict checking value.lval on using address
With the previous change, value.location.address is only valid for lval_memory. This patch restrict some checking on value.lval on using address. Since we have a check on VALUE_VAL in set_value_address, we need to set VALUE_VAL properly before set_value_address too. gdb: 2016-11-25 Yao Qi <yao.qi@linaro.org> * ada-lang.c (ensure_lval): Call set_value_address after setting VALUE_LVAL. * elfread.c (elf_gnu_ifunc_resolve_addr): Set VALUE_LVAL to lval_memory. (elf_gnu_ifunc_resolver_return_stop): Likewise. * value.c (value_fn_field): Likewise. (value_from_contents_and_address_unresolved): Likewise. (value_from_contents_and_address): Likewise. (value_address): Check value->lval isn't lval_memory. (value_raw_address): Likewise. (set_value_address): Assert value->lval is lval_memory.
Diffstat (limited to 'gdb/ada-lang.c')
-rw-r--r--gdb/ada-lang.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 78c7d6f..d2d0340 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -4473,8 +4473,8 @@ ensure_lval (struct value *val)
const CORE_ADDR addr =
value_as_long (value_allocate_space_in_inferior (len));
- set_value_address (val, addr);
VALUE_LVAL (val) = lval_memory;
+ set_value_address (val, addr);
write_memory (addr, value_contents (val), len);
}