binutils question

itojun@iijlab.net itojun@iijlab.net
Wed Jun 19 06:31:00 GMT 2002


>> 	please see (3) in the first attachment.  when bfd_vma is 64bit and
>> 	host is 32bit, there are problematical typecasts like:
>> 		unsigned long long x;
>> 		void *p;
>> 		x = (unsigned long long)p;
>> 	gcc does not like this as sizeof(p) != sizeof(x).  how should we
>> 	address this problem?  first attachment includes workaround patch,
>> 	assuming that "sizeof(void *) <= sizeof(unsigned long)".  basically
>> 	the patch does the following.
>> 		x = (unsigned long long)(unsigned long)p;
>By "gcc does not like" you mean gcc generates bad code or gives
>fatal errors?  I think it's just a warning that can be ignored.

	warnings.  however, i'm a bit concerned about losing information
	when we typecast.  if the situation was backward - like
	sizeof(void *) > sizeof(long), we will have trouble.  i think
	there needs to be some clarification...

itojun



More information about the Binutils mailing list