1 #include <stdio.h>
2 #include <stdarg.h>
3 extern void abort (void);
4 extern int inside_main;
5 
6 __attribute__ ((__noinline__))
7 int
fprintf(FILE * fp,const char * string,...)8 fprintf (FILE *fp, const char *string, ...)
9 {
10   va_list ap;
11   int r;
12 #ifdef __OPTIMIZE__
13   if (inside_main)
14     abort();
15 #endif
16   va_start (ap, string);
17   r = vfprintf (fp, string, ap);
18   va_end (ap);
19   return r;
20 }
21 
22 /* Locking stdio doesn't matter for the purposes of this test.  */
23 __attribute__ ((__noinline__))
24 int
fprintf_unlocked(FILE * fp,const char * string,...)25 fprintf_unlocked (FILE *fp, const char *string, ...)
26 {
27   va_list ap;
28   int r;
29 #ifdef __OPTIMIZE__
30   if (inside_main)
31     abort();
32 #endif
33   va_start (ap, string);
34   r = vfprintf (fp, string, ap);
35   va_end (ap);
36   return r;
37 }
38