diff options
author | Yao Qi <yao.qi@linaro.org> | 2017-04-13 08:29:43 +0100 |
---|---|---|
committer | Yao Qi <yao.qi@linaro.org> | 2017-04-13 08:29:43 +0100 |
commit | e6ddc3bfedb4665c9d4baa2c85037af25167cdf3 (patch) | |
tree | 2cfee48ab641a2e953b6469564691a2d569e11da /gdb/rl78-tdep.c | |
parent | bfb8cf9091a174b42beeff3d014173084413af4d (diff) | |
download | gdb-e6ddc3bfedb4665c9d4baa2c85037af25167cdf3.zip gdb-e6ddc3bfedb4665c9d4baa2c85037af25167cdf3.tar.gz gdb-e6ddc3bfedb4665c9d4baa2c85037af25167cdf3.tar.bz2 |
XCNEW gdbarch_tdep in rl78 and rx
"struct gdbarch_tdep" is XNEW'ed in rl78 and rx, so the memory is not
cleared. As the result, tdep->rl78_psw_type is never initialized
properly.
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
if (tdep->rl78_psw_type == NULL)
{
tdep->rl78_psw_type = arch_flags_type (gdbarch,
"builtin_type_rl78_psw", 1);
The bug is found by my unit test in the following patch.
gdb:
2017-04-13 Yao Qi <yao.qi@linaro.org>
* rl78-tdep.c (rl78_gdbarch_init): Use XCNEW instead of XNEW.
* rx-tdep.c (rx_gdbarch_init): Likewise.
Diffstat (limited to 'gdb/rl78-tdep.c')
-rw-r--r-- | gdb/rl78-tdep.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gdb/rl78-tdep.c b/gdb/rl78-tdep.c index 9f2193e..307a760 100644 --- a/gdb/rl78-tdep.c +++ b/gdb/rl78-tdep.c @@ -1412,7 +1412,7 @@ rl78_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) /* None found, create a new architecture from the information provided. */ - tdep = XNEW (struct gdbarch_tdep); + tdep = XCNEW (struct gdbarch_tdep); gdbarch = gdbarch_alloc (&info, tdep); tdep->elf_flags = elf_flags; |