|  | /* BZ #5424 */ | 
|  | #include <stdio.h> | 
|  | #include <errno.h> | 
|  |  | 
|  | /* INT_MAX + 1 */ | 
|  | #define N 2147483648 | 
|  |  | 
|  | /* (INT_MAX / 2) + 2 */ | 
|  | #define N2 1073741825 | 
|  |  | 
|  | /* INT_MAX - 3 */ | 
|  | #define N3 2147483644 | 
|  |  | 
|  | #define STRINGIFY(S) #S | 
|  | #define MAKE_STR(S) STRINGIFY(S) | 
|  |  | 
|  | #define SN MAKE_STR(N) | 
|  | #define SN2 MAKE_STR(N2) | 
|  | #define SN3 MAKE_STR(N3) | 
|  |  | 
|  | static int | 
|  | do_test (void) | 
|  | { | 
|  | int ret; | 
|  |  | 
|  | FILE *fp = fopen ("/dev/null", "w"); | 
|  | if (fp == NULL) | 
|  | { | 
|  | puts ("cannot open /dev/null"); | 
|  | return 1; | 
|  | } | 
|  |  | 
|  | ret = fprintf (fp, "%" SN "d", 1); | 
|  | printf ("ret = %d\n", ret); | 
|  | if (ret != -1 || errno != EOVERFLOW) | 
|  | return 1; | 
|  |  | 
|  | ret = fprintf (fp, "%." SN "d", 1); | 
|  | printf ("ret = %d\n", ret); | 
|  | if (ret != -1 || errno != EOVERFLOW) | 
|  | return 1; | 
|  |  | 
|  | ret = fprintf (fp, "%." SN3 "d", 1); | 
|  | printf ("ret = %d\n", ret); | 
|  | if (ret != -1 || errno != EOVERFLOW) | 
|  | return 1; | 
|  |  | 
|  | ret = fprintf (fp, "%" SN2 "d%" SN2 "d", 1, 1); | 
|  | printf ("ret = %d\n", ret); | 
|  |  | 
|  | return ret != -1 || errno != EOVERFLOW; | 
|  | } | 
|  |  | 
|  | #define TIMEOUT 60 | 
|  | #define TEST_FUNCTION do_test () | 
|  | #include "../test-skeleton.c" |