Re: [BUG] Bad #define, nonportable C, missing {}

From: Andreas Schwab (schwab@suse.de)
Date: Wed Nov 21 2001 - 09:59:46 EST


"Richard B. Johnson" <root@chaos.analogic.com> writes:

|> On Wed, 21 Nov 2001, Jan Hudec wrote:
|>
|> > > > *a++ = byte_rev[*a]
|> > > It looks perferctly okay to me. Anyway, whenever would you listen to a
|> > > C++ book talking about good C coding :p
|> >
|>
|> It's simple. If any object is modified twice without an intervening
|> sequence point, the results are undefined. The sequence-point in
|>
|> *a++ = byte_rev[*a];
|>
|> ... is the ';'.
|>
|> So, we look at 'a' and see if it's modified twice.

No, the rule much stricter.

         -- Between two sequence points, an object is modified more
            than once, or is modified and the prior value is
            accessed other than to determine the value to be stored
            (6.5).

Andreas.

-- 
Andreas Schwab                                  "And now for something
Andreas.Schwab@suse.de				completely different."
SuSE Labs, SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Nov 23 2001 - 21:00:27 EST