From 9d236627e73355de18e401a8dbaeb99997a2478b Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Thu, 5 Apr 2012 11:20:50 +0000 Subject: [PATCH] 2012-04-05 Pedro Alves -Werror=strict-aliasing * spu-low.c (parse_spufs_run): Avoid dereferencing type-punned pointer. --- gdb/gdbserver/ChangeLog | 7 +++++++ gdb/gdbserver/spu-low.c | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 47d13537c8..25d9cb3448 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,10 @@ +2012-04-05 Pedro Alves + + -Werror=strict-aliasing + + * spu-low.c (parse_spufs_run): Avoid dereferencing type-punned + pointer. + 2012-04-04 Pedro Alves * linux-sparc-low.c (sparc_fill_gregset_to_stack) diff --git a/gdb/gdbserver/spu-low.c b/gdb/gdbserver/spu-low.c index 2a720ae252..1ecd60ccc5 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) -- 2.34.1