Messages in this thread | | | From | Linus Torvalds <> | Date | Mon, 28 Feb 2022 12:14:44 -0800 | Subject | Re: [PATCH 2/6] treewide: remove using list iterator after loop body as a ptr |
| |
On Mon, Feb 28, 2022 at 12:10 PM Linus Torvalds <torvalds@linux-foundation.org> wrote: > > We can do > > typeof(pos) pos > > in the 'for ()' loop, and never use __iter at all. > > That means that inside the for-loop, we use a _different_ 'pos' than outside.
The thing that makes me throw up in my mouth a bit is that in that
typeof(pos) pos
the first 'pos' (that we use for just the typeof) is that outer-level 'pos', IOW it's a *different* 'pos' than the second 'pos' in that same declaration that declares the inner level shadowing new 'pos' variable.
If I was a compiler person, I would say "Linus, that thing is too ugly to live", and I would hate it. I'm just hoping that even compiler people say "that's *so* ugly it's almost beautiful".
Because it does seem to work. It's not pretty, but hey, it's not like our headers are really ever be winning any beauty contests...
Linus
| |