| lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame] | 1 | #include <error.h> | 
|  | 2 | #include <mcheck.h> | 
|  | 3 | #include <stdio.h> | 
|  | 4 | #include <string.h> | 
|  | 5 | #include <wchar.h> | 
|  | 6 | #include <libc-internal.h> | 
|  | 7 |  | 
|  | 8 | static int | 
|  | 9 | do_test (int argc, char *argv[]) | 
|  | 10 | { | 
|  | 11 | mtrace (); | 
|  | 12 | (void) freopen (argc == 1 ? "/dev/stdout" : argv[1], "a", stderr); | 
|  | 13 | /* Orient the stream.  */ | 
|  | 14 | fwprintf (stderr, L"hello world\n"); | 
|  | 15 | char buf[20000]; | 
|  | 16 | static const char str[] = "hello world! "; | 
|  | 17 | for (int i = 0; i < 1000; ++i) | 
|  | 18 | memcpy (&buf[i * (sizeof (str) - 1)], str, sizeof (str)); | 
|  | 19 | error (0, 0, str); | 
|  | 20 |  | 
|  | 21 | /* We're testing a large format string here and need to generate it | 
|  | 22 | to avoid this source file being ridiculous.  So disable the warning | 
|  | 23 | about a generated format string.  */ | 
|  | 24 | DIAG_PUSH_NEEDS_COMMENT; | 
|  | 25 | DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat-security"); | 
|  | 26 |  | 
|  | 27 | error (0, 0, buf); | 
|  | 28 | error (0, 0, buf); | 
|  | 29 |  | 
|  | 30 | DIAG_POP_NEEDS_COMMENT; | 
|  | 31 |  | 
|  | 32 | error (0, 0, str); | 
|  | 33 | return 0; | 
|  | 34 | } | 
|  | 35 |  | 
|  | 36 | #define TEST_FUNCTION do_test (argc, argv) | 
|  | 37 | #include "../test-skeleton.c" |