Thread (40 messages) 40 messages, 7 authors, 2017-05-02

Re: [PATCH 1/5] add SWAP macro

From: Johannes Schindelin <hidden>
Date: 2017-01-31 12:05:48

Hi René,

On Mon, 30 Jan 2017, René Scharfe wrote:
Am 30.01.2017 um 22:03 schrieb Johannes Schindelin:
quoted
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.
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help