From: Martin Sebor Date: Sat, 28 Jan 2017 00:09:15 +0000 (+0000) Subject: builtin-sprintf-warn-1.c: Add test cases. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=eb339366496c247f8d9667c58922eac8a870222b;p=gcc.git builtin-sprintf-warn-1.c: Add test cases. gcc/testsuite/ChangeLog: * gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Add test cases. From-SVN: r244999 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index eb63091bbda..f4b6aa09a6e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2017-01-27 Martin Sebor + + * gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Add test cases. + 2017-01-27 Bernd Schmidt PR rtl-optimization/79194 diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-1.c index 0f3d423d46e..9955326ed4c 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-1.c @@ -76,10 +76,24 @@ int dummy___vsnprintf_chk (char*, size_t, int, size_t, const char*, va_list); /* Macro to verify that calls to __builtin_sprintf (i.e., with no size argument) issue diagnostics by correctly determining the size of the destination buffer. */ -#define T(size, fmt, ...) \ - (FUNC (sprintf) (buffer (size), fmt, __VA_ARGS__), \ +#define T(size, ...) \ + (FUNC (sprintf) (buffer (size), __VA_ARGS__), \ sink (buffer, ptr)) +/* Exercise the "%%" directive. */ + +void test_sprintf_percent (void) +{ + T (-1, "%%"); + T ( 0, "%%"); /* { dg-warning ".%%. directive writing 1 byte into a region of size 0" } */ + T ( 1, "%%"); /* { dg-warning "writing a terminating nul past the end" } */ + T ( 2, "%%"); + T ( 2, "%%%%"); /* { dg-warning "writing a terminating nul past the end" } */ + T ( 3, "%%%%"); + T ( 3, "%%X%%"); /* { dg-warning "writing a terminating nul past the end" } */ + T ( 4, "%%X%%"); +} + /* Exercise the "%c" and "%lc" directive with constant arguments. */ void test_sprintf_c_const (void)