There's a chapter in the C user's guide about porting programs
from 32-bits to 64-bits.  It mentions a lint flag 

   -errchk=longptr64 flag checks assignments of pointer 
   expressions and long integer expressions to plain
   integers, even when explicit casts are used.

http://docs.sun.com/app/docs/doc/819-5265/bjami?a=view

--chris



Roland Mainz wrote:
> Hi!
> 
> ----
> 
> Does Sun Studio 12 have a warning for statements like...
> -- snip --
> int pd;
> char *ptr1,
>      *ptr2;
> /* ... */
> pd = ptr2-ptr1;
> -- snip --
> ... on 64bit targets ?
> 
> I've spend today some hours to dig-out this kind of bug where a pointer
> difference (32bit on 32bit SPARC and 64bit on 64bit SPARC, e.g. a
> |ptrdiff_t|) is stored in an |int| (32bit integer) the loss of bits
> trigged a malfunction... 
> ... somehow I was wondering why Sun Studio didn't warn about this.
> 
> ----
> 
> Bye,
> Roland
> 


Reply via email to