diff options
Diffstat (limited to 'lib/BlocksRuntime/tests/variadic.c')
| -rw-r--r-- | lib/BlocksRuntime/tests/variadic.c | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/lib/BlocksRuntime/tests/variadic.c b/lib/BlocksRuntime/tests/variadic.c deleted file mode 100644 index 1d80657e9..000000000 --- a/lib/BlocksRuntime/tests/variadic.c +++ /dev/null @@ -1,66 +0,0 @@ -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. - -/* - * variadic.c - * testObjects - * - * Created by Blaine Garst on 2/17/09. - * - */ - -// PURPOSE Test that variadic arguments compile and work for Blocks -// CONFIG - -#include <stdarg.h> -#include <stdio.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); - //printf("starting...\n"); - for (p = format; *p; p++) switch (*p) { - case 'i': - i = va_arg(argp, int); - //printf("i: %d\n", i); - result += i; - break; - case 'd': - d = va_arg(argp, double); - //printf("d: %g\n", d); - result += (int)d; - break; - case 'c': - c = va_arg(argp, int); - //printf("c: '%c'\n", c); - result += c; - break; - } - //printf("...done\n\n"); - return result; - }; - long testresult = addthem("ii", 10, 20); - if (testresult != 30) { - printf("got wrong result: %ld\n", testresult); - return 1; - } - testresult = addthem("idc", 30, 40.0, 'a'); - if (testresult != (70+'a')) { - printf("got different wrong result: %ld\n", testresult); - return 1; - } - printf("%s: Success\n", argv[0]); - return 0; -} - - |
