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
This commit is contained in:
Martin Sebor 2017-01-28 00:09:15 +00:00 committed by Martin Sebor
parent 1f44286be0
commit eb33936649
2 changed files with 20 additions and 2 deletions

View File

@ -1,3 +1,7 @@
2017-01-27 Martin Sebor <msebor@redhat.com>
* gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Add test cases.
2017-01-27 Bernd Schmidt <bschmidt@redhat.com>
PR rtl-optimization/79194

View File

@ -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)