diff options
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/aarch64-tdep.c | 8 |
2 files changed, 12 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4d75eea..1d511ac 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2015-12-17 Yao Qi <yao.qi@linaro.org> + + * aarch64-tdep.c (struct stack_item_t): Update comments. + (pass_on_stack): Set item.data to NULL. + (aarch64_push_dummy_call): Call write_memory if si->data + isn't NULL. + 2015-12-16 Pedro Alves <palves@redhat.com> * configure.ac (compiler warning flags): When testing a diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c index 2d1df03..f4763bb 100644 --- a/gdb/aarch64-tdep.c +++ b/gdb/aarch64-tdep.c @@ -855,7 +855,8 @@ aarch64_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum, typedef struct { - /* Value to pass on stack. */ + /* Value to pass on stack. It can be NULL if this item is for stack + padding. */ const gdb_byte *data; /* Size in bytes of value to pass on stack. */ @@ -1124,7 +1125,7 @@ pass_on_stack (struct aarch64_call_info *info, struct type *type, int pad = align - (info->nsaa & (align - 1)); item.len = pad; - item.data = buf; + item.data = NULL; VEC_safe_push (stack_item_t, info->si, &item); info->nsaa += pad; @@ -1382,7 +1383,8 @@ aarch64_push_dummy_call (struct gdbarch *gdbarch, struct value *function, stack_item_t *si = VEC_last (stack_item_t, info.si); sp -= si->len; - write_memory (sp, si->data, si->len); + if (si->data != NULL) + write_memory (sp, si->data, si->len); VEC_pop (stack_item_t, info.si); } |