[llvm-commits] CVS: llvm/test/Programs/SingleSource/UnitTests/2003-05-07-VarArgs.c

Chris Lattner lattner at cs.uiuc.edu
Wed May 7 16:40:00 PDT 2003


Changes in directory llvm/test/Programs/SingleSource/UnitTests:

2003-05-07-VarArgs.c added (r1.1)

---
Log message:

New testcase for variable argument handling stuff


---
Diffs of the changes:

Index: llvm/test/Programs/SingleSource/UnitTests/2003-05-07-VarArgs.c
diff -c /dev/null llvm/test/Programs/SingleSource/UnitTests/2003-05-07-VarArgs.c:1.1
*** /dev/null	Wed May  7 16:39:57 2003
--- llvm/test/Programs/SingleSource/UnitTests/2003-05-07-VarArgs.c	Wed May  7 16:39:47 2003
***************
*** 0 ****
--- 1,33 ----
+ #include <stdio.h>
+ #include <stdarg.h>
+ 
+ void test(char *fmt, ...) {
+   va_list ap;
+   int d;
+   char c, *p, *s;
+ 
+   va_start(ap, fmt);
+   while (*fmt)
+     switch(*fmt++) {
+     case 's':           /* string */
+       s = va_arg(ap, char *);
+       printf("string %s\n", s);
+       break;
+     case 'd':           /* int */
+       d = va_arg(ap, int);
+       printf("int %d\n", d);
+       break;
+     case 'c':           /* char */
+       /* need a cast here since va_arg only
+          takes fully promoted types */
+       c = (char) va_arg(ap, int);
+       printf("char %c\n", c);
+       break;
+     }
+   va_end(ap);
+ }
+ 
+ int main() {
+   test("ssdcd", "abc", "def", -123, 'a', 123);
+   return 0;
+ }





More information about the llvm-commits mailing list