Commit eb339366 by Martin Sebor Committed by Martin Sebor

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
parent 1f44286b
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
......
......@@ -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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment