// RUN: clang-cc %s -verify -fsyntax-only -fblocks

#include <stdarg.h>

int main(int argc, char *argv[]) {
    
    long (^addthem)(const char *, ...) = ^long (const char *format, ...){
        va_list argp;
        const char *p;
        int i;
        char c;
        double d;
        long result = 0;
        va_start(argp, format);
        for (p = format; *p; p++) switch (*p) {
            case 'i':
                i = va_arg(argp, int);
                result += i;
                break;
            case 'd':
                d = va_arg(argp, double);
                result += (int)d;
                break;
            case 'c':
                c = va_arg(argp, int);
                result += c;
                break;
        }
        return result;
    };
    long testresult = addthem("ii", 10, 20);
    if (testresult != 30) {
        return 1;
    }
    testresult = addthem("idc", 30, 40.0, 'a');
    if (testresult != (70+'a')) {
        return 1;
    }
    return 0;
}

