y = (++x) + (++x)

Marcus Meissner Marcus.Meissner@caldera.de
Fri Aug 18 10:32:00 GMT 2000


On Thu, Aug 17, 2000 at 10:12:35PM -0400, Michael Meissner wrote:
> On Fri, Aug 18, 2000 at 12:21:25PM +1100, Andrey Panov wrote:
> >   y = (++x) + (++x);                                                            
> > It produces output y = 6, x = 3, while one can expect y = 5, x = 3.

> Actually you can't expect y to be 5 or x to be 3.  It is undefined behavior if
> you modify the same variable twice (or reference a variable which has been
> modified) without a sequence point occuring between the two operations.

What about gcc detecting this and spitting out a warning or error?

Ciao, Marcus


More information about the Gcc-bugs mailing list