Chris Quenelle wrote: > Roland Mainz wrote: > > 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. > > 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
After some hacking with "lint vs. libshell" it seems that "lint" doesn't complain about the issue even when -errchk=%all is enabled... ;-( ---- Bye, Roland -- __ . . __ (o.\ \/ /.o) roland.mainz at nrubsig.org \__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer /O /==\ O\ TEL +49 641 3992797 (;O/ \/ \O;)