From: Douglas B Rupp <[email protected]>
In the vxworks section, a conversion between char* and int is
attempted, which results in a warning with gcc. However with clang
with is an error. Note also on 64bit targets, there's a size
mismatch.
gcc/ada/ChangeLog:
* socket.c [__vxworks]: Change vxw_h_addr type to long from
int, and cast the conversion of char* to vxw_h_addr to avoid
warning/error.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/socket.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc/ada/socket.c b/gcc/ada/socket.c
index 75b4288a129..297d303cef7 100644
--- a/gcc/ada/socket.c
+++ b/gcc/ada/socket.c
@@ -266,7 +266,7 @@ __gnat_getservbyport (int port, const char *proto,
#elif defined (__vxworks)
static char vxw_h_name[MAXHOSTNAMELEN + 1];
static char *vxw_h_aliases[1] = { NULL };
-static int vxw_h_addr;
+static long vxw_h_addr;
static char *vxw_h_addr_list[2] = { (char*) &vxw_h_addr, NULL };
int
@@ -307,7 +307,7 @@ __gnat_gethostbyaddr (const char *addr, int len, int type,
return -1;
}
- vxw_h_addr = addr;
+ vxw_h_addr = (long) addr;
ret->h_name = &vxw_h_name;
ret->h_aliases = &vxw_h_aliases;
--
2.43.0