diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/format/plus-1.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/format/plus-1.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/format/plus-1.c b/gcc/testsuite/gcc.dg/format/plus-1.c new file mode 100644 index 000000000..02a213d41 --- /dev/null +++ b/gcc/testsuite/gcc.dg/format/plus-1.c @@ -0,0 +1,20 @@ +/* Test for printf formats using string literal plus constant. + */ +/* Origin: Jakub Jelinek <jakub@redhat.com> */ +/* { dg-do compile } */ +/* { dg-options "-std=iso9899:1990 -pedantic -Wformat=2" } */ + +#include "format.h" + +void +foo (int i) +{ + printf ("%%d\n" + 1, i); + printf (5 + "%.-*d%3d\n", i); + printf ("%d%d" + 2, i, i); /* { dg-warning "arguments" "wrong number of args" } */ + printf (3 + "%d\n"); /* { dg-warning "zero-length" "zero-length string" } */ + printf ("%d\n" + i, i); /* { dg-warning "not a string" "non-constant addend" } */ + printf ("%d\n" + 10); /* { dg-warning "not a string" "too large addend" } */ + printf ("%d\n" - 1, i); /* { dg-warning "not a string" "minus constant" } */ + printf ("%d\n" + -1, i); /* { dg-warning "not a string" "negative addend" } */ +} |