Subject: Re: couple of toolchain questions
To: None <tech-userlevel@netbsd.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: tech-userlevel
Date: 06/18/2002 11:00:28
> 	there seem to be pointer-casting bug (or portability issue) in
> 	GNU toolchain.  they try to cast void * (or whatever pointer) to
> 	unsigned long long, under certain configuration, and it fails to
> 	compile.

Is there any guarantee that _any_ integer type is large enough to hold
a pointer without loss of information?  I'm pretty sure there isn't in
second-edition K&R C (which is fairly close to the first ANSI/ISO C)...

> 		void *p;
> 		unsigned long long x;
> 		x = (unsigned long long)p;
> 	i've modified my local tree as below, basically doing:
> 		x = (unsigned long long)(unsigned long)p;

Are there machines where pointers are larger than long but not as large
as long long?  If so, that loses information unnecessarily....

/~\ The ASCII				der Mouse
\ / Ribbon Campaign
 X  Against HTML	       mouse@rodents.montreal.qc.ca
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B