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