>> >> There's no particular reason for having a nested call there anyway. > > But there's also no particular reason why we should avoid it, unless we > know more about which environment is broken if we don't avoid it, since > as written, it is standards-compliant code.
P.S. Just because code is standards compliant doesn't make it easy to follow. Disentangling function calls makes code easier to follow. The only place where I'd put a function call in an argument list is where you are using an accessor function. "memcpy" is not doing that. Instead, it is returning its first argument "as a convenience". That has two consequences: 1) the code is somewhat more cluttered, and 2) GCC complains. Rather forcefully. Hence, the patch.