[c++,1/5] lm32: Add (const gdb_byte *) cast

Message ID 561D3BEB.9090409@ericsson.com
State New, archived
Headers

Commit Message

Simon Marchi Oct. 13, 2015, 5:14 p.m. UTC
  On 15-10-12 07:10 AM, Pedro Alves wrote:
> This reveals that the code has a host-dependency.  It is assuming the
> byte order of the target is the same as host's.
> 
> Please replace this with a call to write_memory_unsigned_integer.
> 
> Looks like this port hasn't been touched ever since it was
> originally contributed.  Jon, is there still interest in this port?
> 
> Thanks,
> Pedro Alves

Ah, thanks for the tip.  It would look like this then:


From 5543b8ee060c5d0d171f5a8220a927c35bd3e5d5 Mon Sep 17 00:00:00 2001
From: Simon Marchi <simon.marchi@polymtl.ca>
Date: Sun, 11 Oct 2015 00:37:14 -0400
Subject: [PATCH] lm32: Replace call to write_memory with write_memory_unsigned_integer
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fixes this error:

/home/emaisin/src/binutils-gdb/gdb/lm32-tdep.c: In function ‘CORE_ADDR lm32_push_dummy_call(gdbarch*, value*, regcache*, CORE_ADDR, int, value**, CORE_ADDR, int, CORE_ADDR)’:
/home/emaisin/src/binutils-gdb/gdb/lm32-tdep.c:292:59: error: invalid conversion from ‘void*’ to ‘const gdb_byte* {aka const unsigned char*}’ [-fpermissive]
    write_memory (sp, (void *) &val, TYPE_LENGTH (arg_type));
                                                           ^
In file included from /home/emaisin/src/binutils-gdb/gdb/lm32-tdep.c:29:0:
/home/emaisin/src/binutils-gdb/gdb/gdbcore.h:107:13: error:   initializing argument 2 of ‘void write_memory(CORE_ADDR, const gdb_byte*, ssize_t)’ [-fpermissive]
 extern void write_memory (CORE_ADDR memaddr, const gdb_byte *myaddr,
             ^

gdb/ChangeLog:

	* lm32-tdep.c (lm32_push_dummy_call): Replace call to
	write_memory with write_memory_unsigned_integer.
---
 gdb/lm32-tdep.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  

Comments

Pedro Alves Oct. 13, 2015, 5:32 p.m. UTC | #1
On 10/13/2015 06:14 PM, Simon Marchi wrote:
> On 15-10-12 07:10 AM, Pedro Alves wrote:
>> This reveals that the code has a host-dependency.  It is assuming the
>> byte order of the target is the same as host's.
>>
>> Please replace this with a call to write_memory_unsigned_integer.
>>
>> Looks like this port hasn't been touched ever since it was
>> originally contributed.  Jon, is there still interest in this port?
>>
>> Thanks,
>> Pedro Alves
> 
> Ah, thanks for the tip.  It would look like this then:

Looks good.

Thanks,
Pedro Alves
  
Simon Marchi Oct. 13, 2015, 5:37 p.m. UTC | #2
On 15-10-13 01:32 PM, Pedro Alves wrote:
> Looks good.
> 
> Thanks,
> Pedro Alves

Pushed, thanks.
  

Patch

diff --git a/gdb/lm32-tdep.c b/gdb/lm32-tdep.c
index 25a7e1e..2dcc9a3 100644
--- a/gdb/lm32-tdep.c
+++ b/gdb/lm32-tdep.c
@@ -289,7 +289,8 @@  lm32_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
 	regcache_cooked_write_unsigned (regcache, first_arg_reg + i, val);
       else
 	{
-	  write_memory (sp, (void *) &val, TYPE_LENGTH (arg_type));
+	  write_memory_unsigned_integer (sp, TYPE_LENGTH (arg_type), byte_order,
+					 val);
 	  sp -= 4;
 	}
     }