Hi René, On Mon, 30 Jan 2017, René Scharfe wrote: > Am 30.01.2017 um 22:03 schrieb Johannes Schindelin: > > It is curious, though, that an expression like "sizeof(a++)" would not > > be rejected. > > Clang normally warns about something like this ("warning: expression > with side effects has no effect in an unevaluated context > [-Wunevaluated-expression]"), but not if the code is part of a macro. I > don't know if that's intended, but it sure is helpful in the case of > SWAP. Thank you for clarifying. > > Further, what would SWAP(a++, b) do? Swap a and b, and *then* > > increment a? > > That might be a valid expectation, but GCC says "error: lvalue required > as unary '&' operand" and clang puts it "error: cannot take the address > of an rvalue of type". Okay, now we know what the tool says. I would like to take a step back and state that it does not make much sense to support SWAP(a++, b), as it is confusing at best. Ciao, Dscho