diff options
author | Nathan Froyd <froydnj@codesourcery.com> | 2011-04-27 18:37:40 +0000 |
---|---|---|
committer | Nathan Froyd <froydnj@codesourcery.com> | 2011-04-27 18:37:40 +0000 |
commit | b00ad6ff40490d267f39169239bac49a50cc5748 (patch) | |
tree | eb42bc563eb5b48b4fff27387a7d755506b6d53f /gdb/gdbserver | |
parent | 2484c66bef3b2b6c27d72beab92a3e8c7be1e686 (diff) | |
download | gdb-b00ad6ff40490d267f39169239bac49a50cc5748.zip gdb-b00ad6ff40490d267f39169239bac49a50cc5748.tar.gz gdb-b00ad6ff40490d267f39169239bac49a50cc5748.tar.bz2 |
fix strict-aliasing warnings
* linux-x86-low.c (amd64_emit_const): Call memcpy instead of
casting pointers.
(amd64_emit_reg, amd64_emit_int_call_1, amd64_emit_void_call_2):
(i386_emit_const, i386_emit_reg, i386_emit_int_call_1):
(i386_emit_void_call_2): Likewise.
Diffstat (limited to 'gdb/gdbserver')
-rw-r--r-- | gdb/gdbserver/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/gdbserver/linux-x86-low.c | 21 |
2 files changed, 19 insertions, 10 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 1e9ea4a..fd01327 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,11 @@ +2011-04-27 Nathan Froyd <froydnj@codesourcery.com> + + * linux-x86-low.c (amd64_emit_const): Call memcpy instead of + casting pointers. + (amd64_emit_reg, amd64_emit_int_call_1, amd64_emit_void_call_2): + (i386_emit_const, i386_emit_reg, i386_emit_int_call_1): + (i386_emit_void_call_2): Likewise. + 2011-04-26 Yao Qi <yao@codesourcery.com> * linux-low.c: Move common macros to linux-ptrace.h. diff --git a/gdb/gdbserver/linux-x86-low.c b/gdb/gdbserver/linux-x86-low.c index 88f177d..027a563 100644 --- a/gdb/gdbserver/linux-x86-low.c +++ b/gdb/gdbserver/linux-x86-low.c @@ -1819,7 +1819,7 @@ amd64_emit_const (LONGEST num) i = 0; buf[i++] = 0x48; buf[i++] = 0xb8; /* mov $<n>,%rax */ - *((LONGEST *) (&buf[i])) = num; + memcpy (&buf[i], &num, sizeof (num)); i += 8; append_insns (&buildaddr, i, buf); current_insn_ptr = buildaddr; @@ -1876,7 +1876,7 @@ amd64_emit_reg (int reg) buildaddr = current_insn_ptr; i = 0; buf[i++] = 0xbe; /* mov $<n>,%esi */ - *((int *) (&buf[i])) = reg; + memcpy (&buf[i], ®, sizeof (reg)); i += 4; append_insns (&buildaddr, i, buf); current_insn_ptr = buildaddr; @@ -1959,7 +1959,7 @@ amd64_emit_int_call_1 (CORE_ADDR fn, int arg1) buildaddr = current_insn_ptr; i = 0; buf[i++] = 0xbf; /* movl $<n>,%edi */ - *((int *) (&buf[i])) = arg1; + memcpy (&buf[i], &arg1, sizeof (arg1)); i += 4; append_insns (&buildaddr, i, buf); current_insn_ptr = buildaddr; @@ -1978,7 +1978,7 @@ amd64_emit_void_call_2 (CORE_ADDR fn, int arg1) buildaddr = current_insn_ptr; i = 0; buf[i++] = 0xbf; /* movl $<n>,%edi */ - *((int *) (&buf[i])) = arg1; + memcpy (&buf[i], &arg1, sizeof (arg1)); i += 4; append_insns (&buildaddr, i, buf); current_insn_ptr = buildaddr; @@ -2301,18 +2301,19 @@ static void i386_emit_const (LONGEST num) { unsigned char buf[16]; - int i, hi; + int i, hi, lo; CORE_ADDR buildaddr = current_insn_ptr; i = 0; buf[i++] = 0xb8; /* mov $<n>,%eax */ - *((int *) (&buf[i])) = (num & 0xffffffff); + lo = num & 0xffffffff; + memcpy (&buf[i], &lo, sizeof (lo)); i += 4; hi = ((num >> 32) & 0xffffffff); if (hi) { buf[i++] = 0xbb; /* mov $<n>,%ebx */ - *((int *) (&buf[i])) = hi; + memcpy (&buf[i], &hi, sizeof (hi)); i += 4; } else @@ -2351,7 +2352,7 @@ i386_emit_reg (int reg) buildaddr = current_insn_ptr; i = 0; buf[i++] = 0xb8; /* mov $<n>,%eax */ - *((int *) (&buf[i])) = reg; + memcpy (&buf[i], ®, sizeof (reg)); i += 4; append_insns (&buildaddr, i, buf); current_insn_ptr = buildaddr; @@ -2451,7 +2452,7 @@ i386_emit_int_call_1 (CORE_ADDR fn, int arg1) buf[i++] = 0xc7; /* movl $<arg1>,(%esp) */ buf[i++] = 0x04; buf[i++] = 0x24; - *((int *) (&buf[i])) = arg1; + memcpy (&buf[i], &arg1, sizeof (arg1)); i += 4; append_insns (&buildaddr, i, buf); current_insn_ptr = buildaddr; @@ -2486,7 +2487,7 @@ i386_emit_void_call_2 (CORE_ADDR fn, int arg1) buf[i++] = 0xc7; /* movl $<arg1>,(%esp) */ buf[i++] = 0x04; buf[i++] = 0x24; - *((int *) (&buf[i])) = arg1; + memcpy (&buf[i], &arg1, sizeof (arg1)); i += 4; append_insns (&buildaddr, i, buf); current_insn_ptr = buildaddr; |