Pointer -> Long Conversion
    Alan S. Driscoll 
    alan at allegra.UUCP
       
    Thu Jul 26 03:41:59 AEST 1984
    
    
  
> This discussion of sign extending pointers when converting to longs
> has got me wondering what the Prime C compiler does when extending a
> long into a pointer.  Pointers are the longest type on this compiler:
> 48 bits, while long, int, and unsigned are all 32 bits.  This breaks
> all programs that assume pointers can be assigned to longs and recovered
> unchanged.  Only char pointers need more than 32 bits,  but the compiler
> author decided to make all pointers 48 bits anyway.  I'll investigate
> this and report back if anyone is interested.  
If this is the case, then the Prime compiler is just wrong.  See section
14.4 of the C Reference Manual, "Explicit pointer conversions."  At least
one of the integral types must be large enough to hold a pointer.
-- 
	Alan S. Driscoll
	AT&T Bell Laboratories
    
    
More information about the Comp.lang.c
mailing list