Russ Cox <[EMAIL PROTECTED]> writes

| but that won't actually have any effect on systems where
| int is 32 bits but long is 64.  the problem is that ((p)[3]<<24)
| is being (correctly) treated as a signed int, and then
| (vlong)(...|((p)[3]<<24)) sign extends.  Casting the (p)[0]
| to (ulong) has the effect of making the whole 32-bit expression
| unsigned on 32-bit systems, but if ulong is 64 bits, then
| you'll still sign-extend ((p)[3]<<24) during the convertsion
| from int to ulong.

i'll be wearing the dope sack over my head this week.

- erik

Reply via email to