Re: [RFC] Documentation/CodingStyle: Add rules for goto labels

From: Jeff Garzik
Date: Mon Jun 04 2007 - 22:12:21 EST


On Tue, Jun 05, 2007 at 10:10:27AM +0800, WANG Cong wrote:
> On Mon, Jun 04, 2007 at 01:57:51PM -0400, Jeff Garzik wrote:
> >On Mon, Jun 04, 2007 at 10:43:51AM -0700, H. Peter Anvin wrote:
> >> Jan Engelhardt wrote:
> >> > On Jun 4 2007 10:27, H. Peter Anvin wrote:
> >> >> Jeff Garzik wrote:
> >> >>> Seconded. All my code contains the goto label in the first column.
> >> >>>
> >> >>> IMO any other goto label indentation is silly, because it obscures the
> >> >>> goto label within the code block.
> >> >> I would have to disagree with this. IMNSHO, a goto label is like a case
> >> >> label, and they should be treated the same way.
> >> >
> >> > But gotos are special. ("Evil" minus the "it's good for unrolling in case of an
> >> > error" case).
> >> >
> >>
> >> So?
> >>
> >> You still want them to be associated with the level the bailout happens at.
> >
> >A matter of opinion :) I tend to think goto is special enough to
> >warrant column 1 unconditionally. It is special, so it draws additional
> >attention over and above case labels.
> >
> >I and others have been tripped up when programmers "hide" goto
> >statements among regular statements.
> >
> >IMO goto warrants a big flashing "notice me" sign.
> >
> > Jeff
>
> Hmmm, perhaps.
>
> So, it seems that we can reach an agreement. Any other comments or suggestions?
> Or can someone ack/merge this patch?

Honestly, I think not reaching an agreement is a good thing.

"style" is always ultimately in the eye of the beholder, and reasoned
people come up with multiple answers to the same question.

Sometimes it's better _not_ to set things in stone. "use your
judgement" and "follow the existing style" go a long way.

Jeff



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/