diff options
Diffstat (limited to 'REORG.TODO/misc/tst-error1.c')
-rw-r--r-- | REORG.TODO/misc/tst-error1.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/REORG.TODO/misc/tst-error1.c b/REORG.TODO/misc/tst-error1.c new file mode 100644 index 0000000000..9c4a62fbd0 --- /dev/null +++ b/REORG.TODO/misc/tst-error1.c @@ -0,0 +1,37 @@ +#include <error.h> +#include <mcheck.h> +#include <stdio.h> +#include <string.h> +#include <wchar.h> +#include <libc-diag.h> + +static int +do_test (int argc, char *argv[]) +{ + mtrace (); + (void) freopen (argc == 1 ? "/dev/stdout" : argv[1], "a", stderr); + /* Orient the stream. */ + fwprintf (stderr, L"hello world\n"); + char buf[20000]; + static const char str[] = "hello world! "; + for (int i = 0; i < 1000; ++i) + memcpy (&buf[i * (sizeof (str) - 1)], str, sizeof (str)); + error (0, 0, str); + + /* We're testing a large format string here and need to generate it + to avoid this source file being ridiculous. So disable the warning + about a generated format string. */ + DIAG_PUSH_NEEDS_COMMENT; + DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat-security"); + + error (0, 0, buf); + error (0, 0, buf); + + DIAG_POP_NEEDS_COMMENT; + + error (0, 0, str); + return 0; +} + +#define TEST_FUNCTION do_test (argc, argv) +#include "../test-skeleton.c" |