1 // RUN: %clang_cc1 %s -verify -fsyntax-only -fblocks
2 // expected-no-diagnostics
3 
4 #include <stdarg.h>
5 
main(int argc,char * argv[])6 int main(int argc, char *argv[]) {
7 
8     long (^addthem)(const char *, ...) = ^long (const char *format, ...){
9         va_list argp;
10         const char *p;
11         int i;
12         char c;
13         double d;
14         long result = 0;
15         va_start(argp, format);
16         for (p = format; *p; p++) switch (*p) {
17             case 'i':
18                 i = va_arg(argp, int);
19                 result += i;
20                 break;
21             case 'd':
22                 d = va_arg(argp, double);
23                 result += (int)d;
24                 break;
25             case 'c':
26                 c = va_arg(argp, int);
27                 result += c;
28                 break;
29         }
30         return result;
31     };
32     long testresult = addthem("ii", 10, 20);
33     if (testresult != 30) {
34         return 1;
35     }
36     testresult = addthem("idc", 30, 40.0, 'a');
37     if (testresult != (70+'a')) {
38         return 1;
39     }
40     return 0;
41 }
42 
43