[alsa-devel] [PATCH] azt3328: repair breakage (Re: [PATCH 1/1] SOUND: azt3328, fix broken AZF_FMT_XLATE macro)

Takashi Iwai tiwai at suse.de
Tue Jan 25 10:40:30 CET 2011


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


More information about the Alsa-devel mailing list