diff options
author | Pedro Alves <palves@redhat.com> | 2012-04-05 11:20:50 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2012-04-05 11:20:50 +0000 |
commit | 9d236627e73355de18e401a8dbaeb99997a2478b (patch) | |
tree | bf086c7baa219136c6f41cabeefaad6840e3dd2a | |
parent | 443507505d3a8bac2b5dc2e8578af2006f68cc80 (diff) | |
download | gdb-9d236627e73355de18e401a8dbaeb99997a2478b.zip gdb-9d236627e73355de18e401a8dbaeb99997a2478b.tar.gz gdb-9d236627e73355de18e401a8dbaeb99997a2478b.tar.bz2 |
2012-04-05 Pedro Alves <palves@redhat.com>
-Werror=strict-aliasing
* spu-low.c (parse_spufs_run): Avoid dereferencing type-punned
pointer.
-rw-r--r-- | gdb/gdbserver/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/gdbserver/spu-low.c | 6 |
2 files changed, 10 insertions, 3 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 47d1353..25d9cb3 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,10 @@ +2012-04-05 Pedro Alves <palves@redhat.com> + + -Werror=strict-aliasing + + * spu-low.c (parse_spufs_run): Avoid dereferencing type-punned + pointer. + 2012-04-04 Pedro Alves <palves@redhat.com> * linux-sparc-low.c (sparc_fill_gregset_to_stack) diff --git a/gdb/gdbserver/spu-low.c b/gdb/gdbserver/spu-low.c index 2a720ae..1ecd60c 100644 --- a/gdb/gdbserver/spu-low.c +++ b/gdb/gdbserver/spu-low.c @@ -206,14 +206,14 @@ store_ppc_memory (CORE_ADDR memaddr, char *myaddr, int len) static int parse_spufs_run (int *fd, CORE_ADDR *addr) { - char buf[4]; + unsigned int insn; CORE_ADDR pc = fetch_ppc_register (32); /* nip */ /* Fetch instruction preceding current NIP. */ - if (fetch_ppc_memory (pc-4, buf, 4) != 0) + if (fetch_ppc_memory (pc-4, (char *) &insn, 4) != 0) return 0; /* It should be a "sc" instruction. */ - if (*(unsigned int *)buf != INSTR_SC) + if (insn != INSTR_SC) return 0; /* System call number should be NR_spu_run. */ if (fetch_ppc_register (0) != NR_spu_run) |