[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