1/* { dg-do compile } */ 2/* { dg-require-effective-target ia32 } */ 3/* { dg-options "-O2 -std=gnu89" } */ 4 5typedef __builtin_va_list __va_list; 6typedef __va_list __gnuc_va_list; 7typedef __gnuc_va_list va_list; 8struct MSVCRT__iobuf { }; 9typedef struct MSVCRT__iobuf MSVCRT_FILE; 10typedef union _printf_arg { } printf_arg; 11MSVCRT_FILE MSVCRT__iob[20]; 12int pf_print_a (va_list *); 13int __attribute__((__cdecl__)) 14MSVCRT_vfprintf_s(MSVCRT_FILE* file, const char *format, va_list valist) 15{ 16 if(!((file != ((void *)0)) 17 || (MSVCRT__invalid_parameter(((void *)0), ((void *)0), 18 ((void *)0), 0, 0),0))) 19 return -1; 20 return pf_printf_a(&valist); 21} 22int __attribute__((__cdecl__)) 23MSVCRT_vprintf_s(const char *format, va_list valist) 24{ 25 return MSVCRT_vfprintf_s((MSVCRT__iob+1),format,valist); 26} 27int __attribute__((__cdecl__)) 28MSVCRT_fprintf_s(MSVCRT_FILE* file, const char *format, ...) 29{ 30 va_list valist; 31 va_start (valist, format); 32 return MSVCRT_vfprintf_s(file, format, valist); 33} 34