[cfe-users] curly brace position

Gri Msb gri.msb at gmail.com
Fri Jan 23 13:15:05 PST 2015


> >
> > Dear colleagues, I have found a strange bit of code that works, but I
think it should not.
> >
> > #include <stdio.h>
> > int main ()
> > {
> >     int iC = 0;
> >     for (iC = 1; iC < 5; iC++) {
> >         switch (iC)
> >             case 1:
> >         { // Wrong?, but it works fine!.
> >                 printf("ONE\n");
> >                 break;
> >             case 2:
> >                 printf("TWO\n");
> >                 break;
> >             default:
> >                 printf("NO!\n");
> >                 break;
> >         }
> >     }
> >     return 0;
> > }
> >
> > The code compiles without any warning using clang 3.4.1 (FreeBSD 10.1)
and "-Wall" "--pedantic".  And the execution results are:
> > ONE
> > TWO
> > NO!
> > NO!
>
> You might want to google "Duff's Device"
>
> -- Marshall
>
Thanks a lot!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-users/attachments/20150123/98f58f6f/attachment.html>


More information about the cfe-users mailing list