It doesn't since the assignment is in brackets. You can also write
if ((i = getValue()))
Why not be absolutely sure?
if (0 != (0 != (i = getValue())))
I am aware of the redundancy, this was about the new warnings. If you can't do if(i = getValue()) without warning, I was wondering if assignments as a part of a larger expression would pass.
I hope it does!
Why would that be a warning? It's quite clear what that code is doing and is a reasonably common C idiom.
Yeah, fair enough. It's not bad - I had to think about my objection to it and it's probably largely unfounded.