FSF GCC merge 02/23/03
[official-gcc.git] / gcc / testsuite / objc / execute / va_method.m
blobbcf43d272a27687d34ec5f0bed846c5d267a221b
1 /* Contributed by Nicola Pero - Thu Mar  8 16:27:46 CET 2001 */
2 #include <objc/objc.h>
3 #include <objc/objc-api.h>
5 /* Test method with variable number of arguments */
7 @interface MathClass
9   Class isa;
11 /* sum positive numbers; -1 ends the list */
12 + (int) sum: (int)firstNumber, ...;
13 @end
15 @implementation MathClass
16 + (int) sum: (int)firstNumber, ...
18   va_list ap;
19   int sum = 0, number = 0;
21   va_start (ap, firstNumber);
22   number = firstNumber;
24   while (number >= 0)
25     {
26       sum += number;
27       number = va_arg (ap, int);
28     }
29   
30   va_end (ap);
32   return sum;
34 @end
36 int main (void)
38   if ([MathClass sum: 1, 2, 3, 4, 5, -1] != 15)
39     {
40       abort ();
41     }
42   
43   return 0;