On Wed, March 2, 2011 09:02, Roland Turcan wrote:
Hello, > I have this code: . . > p := PByteArray (PtrUInt (@FData.Content[0]) + MOffset); > ... > > > But the compiler informs about %subj%. > > How to get rid of this warning and to make code portable? At least with 2.4.2 it is not a warning but just a hint. You should not try to avoid all the hints, but they may be useful when trying to find out source of some issues. One concrete comment would be that MOffset is an integer and thus result of the addition is an int64 (as also pointed out by another hint). This means that you in fact typecast an int64 value to a pointer. That is always a valid operation on 64-bit platforms but on 32-bit ones it may potentially overflow depending on the values of MOffset and @FData. Obviously, this should never happen if you use the 'right' values of MOffset (and if not, it's equally dangerous on 32-bit or 64-bit regardless of overflows anyway ;-) ) but the compiler cannot really check that. Tomas _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal