/* derived from mozilla source code */ | |
#include <stdarg.h> | |
typedef struct { | |
void *stream; | |
va_list ap; | |
int nChar; | |
} ScanfState; | |
void dummy (va_list vap) | |
{ | |
if (va_arg (vap, int) != 1234) abort(); | |
return; | |
} | |
void test (int fmt, ...) | |
{ | |
ScanfState state, *statep; | |
statep = &state; | |
va_start (statep->ap, fmt); | |
dummy (statep->ap); | |
va_end (statep->ap); | |
va_start (state.ap, fmt); | |
dummy (state.ap); | |
va_end (state.ap); | |
return; | |
} | |
int main (void) | |
{ | |
test (456, 1234); | |
exit (0); | |
} |