On Tue, 30 Jul 2024 at 15:44, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxx> wrote: > > Does this work for you? It seems to at least build cleanly here, but I'm not claiming it's all that great. The nested __cmp() is still rather less than optimal from an expansion standpoint, but at least it expands only those unique temporaries. [ Side note: having not looked at a lot of the resulting pre-processed mess, I'm not convinced it really helps to make those unique names so long. The whole "__UNIQUE_ID_" prefix looks good once, but to some degree it actually hides the important part, which is the actual prefix and the unique number. But honestly, nobody ever looks at this part normally, so it probably doesn't matter ] It might be possible to cut down on that by doing them in series instead of nested, but I think that would require something like generating a fourth unique name, and something along the lines of __auto_type u4 = __cmp(op, ux, uy); __cmp(op, u4, uz); as that last line. And no, I did *not* try that, and there might be something I'm missing. Linus