1/* On the i960 any arg bigger than 16 bytes causes all subsequent args 2 to be passed on the stack. We test this. */ 3 4#include <stdarg.h> 5 6typedef struct { 7 char a[32]; 8} big; 9 10void 11f (big x, char *s, ...) 12{ 13 va_list ap; 14 15 if (x.a[0] != 'a' || x.a[1] != 'b' || x.a[2] != 'c') 16 abort (); 17 va_start (ap, s); 18 if (va_arg (ap, int) != 42) 19 abort (); 20 if (va_arg (ap, int) != 'x') 21 abort (); 22 if (va_arg (ap, int) != 0) 23 abort (); 24 va_end (ap); 25} 26 27main () 28{ 29 static big x = { "abc" }; 30 31 f (x, "", 42, 'x', 0); 32 exit (0); 33} 34