1/* derived from mozilla source code */ 2 3#include <stdarg.h> 4 5typedef struct { 6 void *stream; 7 va_list ap; 8 int nChar; 9} ScanfState; 10 11void dummy (va_list vap) 12{ 13 if (va_arg (vap, int) != 1234) abort(); 14 return; 15} 16 17void test (int fmt, ...) 18{ 19 ScanfState state, *statep; 20 21 statep = &state; 22 23 va_start (statep->ap, fmt); 24 dummy (statep->ap); 25 va_end (statep->ap); 26 27 va_start (state.ap, fmt); 28 dummy (state.ap); 29 va_end (state.ap); 30 31 return; 32} 33 34int main (void) 35{ 36 test (456, 1234); 37 exit (0); 38} 39