// RUN: %clang_cc1 %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;
}

