Source: inform
Version: 6.31.1+dfsg-1.1
Severity: normal

Hi,

The build logs on 64-bit arches report warnings similar to these:

> In file included from asm.c:9:0:
> asm.c: In function 'assemblez_instruction':
> header.h:618:36: warning: cast from pointer to integer of different size 
> [-Wpointer-to-int-cast]
>  #define subtract_pointers(p1,p2) (((int32) p1)-((int32) p2))
>                                     ^
> asm.c:774:13: note: in expansion of macro 'subtract_pointers'
>          j = subtract_pointers(
>              ^

This is potentially bad for any 64-bit architecture. My guess is that
it still works due to pure luck that glibc's allocator doesn't start at
an address above 2GB. The code is also wrong for 32-bit since it could
potentially result in signed integer overflow if addresses in the 2GB-
3GB range are used.

After writing the above, I discovered that there is a constant 'UNIX64'
which could be defined to at least improve the situation on 64-bit
arches.

Thanks,
James

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to