On Mon, Apr 13, 2020 at 12:32 PM Linus Torvalds wrote: > > I _feel_ like the fix to that should be that the only thing that > creates the actual symbol is the label definition, and that the goto > should only ever use the 'ident' and we'd tie the two together later. Actually, how about something like this? I've not signed off on these patches, and the commit logs are questionable, but part of that is that the two first ones are just quick-and-dirty versions of your rename cleanups. The third patch is the serious one, which shows what I think might be the solution to the odd scoping rules for labels. Basically, we always scope labels - but if a label is _used_ but not defined in an inner label, when we close the label scope, we move it out to the next level. But a defined label is never moved out, and when we define it, we require that any previous use was in the same scope (where "same scope" might have been an inner scope that was moved out). I think it gets the semantics right, and it's actually fairly simple. But it has very little testing, so this is more of a "how about something like this" than a serious submission. If you test it, and fix up the warnings and error cases (like the other patches in your series did), you are more than welcome to take credit and authorship for this. I just felt that the best way to describe (and do _some_ testing) my idea was to have a quick implementation to show what I mean. And by "_some_ testing" I literally mean "almost no testing at all". I didn't even run this on the kernel tree. I just used one stipid small test-case for this, and when it gave the warning I wanted, I said "good enough" and sent this email out ;) Linus