Re: [PATCH] azt3328: repair breakage (Re: [PATCH 1/1] SOUND: azt3328, fix broken AZF_FMT_XLATE macro)
From: Takashi Iwai
Date: Tue Jan 25 2011 - 04:40:37 EST
At Tue, 25 Jan 2011 09:23:41 +0100,
Jiri Slaby wrote:
>
> On 01/25/2011 06:46 AM, Andreas Mohr wrote:
> > It is also quite interesting to note that this rather uncommon language syntax
> > (do...while(0) within switch scope) compiled cleanly without issue
> > (no warnings).
>
> Note that the switch block is the same like the others and case and
> default and very similar to goto labels. You can even do:
> switch (x) {
> int abc;
> { case 5: abc = 7; break; }
> do { case 3: abc = 5; break; } while (0);
> while (1) {
> printf("%d\n", abc);
> default:
> abc = 1;
> }
> }
> And check what it will do for x == 3, 5, and others :).
Oh, don't let him bring to the dark side of C again :)
Takashi
--
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/