David Schultz <[EMAIL PROTECTED]> writes: > On Thu, Jan 27, 2005, Jacques Fourie wrote: > > unsigned char *p = NULL; > > unsigned char v = 0x55; > > /* ... */ > > p = (unsigned char *)ip_output; > > /* ... */ > > v = p[0]; > > p[0] = v; > > /* ... */ > When the line is there, the compiler is probably smart enough to > realize that 'x=y; y=x' is (usually) a no-op, so it optimizes away > both statements.
Wrong. The compiler is free to optimize away the second statement provided that neither x nor y is declared volatile, but it cannot optimize away the first statement. DES -- Dag-Erling Smørgrav - [EMAIL PROTECTED] _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"