From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository. --- gcc/testsuite/gcc.dg/format/ms_array-1.c | 42 ++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/format/ms_array-1.c (limited to 'gcc/testsuite/gcc.dg/format/ms_array-1.c') diff --git a/gcc/testsuite/gcc.dg/format/ms_array-1.c b/gcc/testsuite/gcc.dg/format/ms_array-1.c new file mode 100644 index 000000000..b34506830 --- /dev/null +++ b/gcc/testsuite/gcc.dg/format/ms_array-1.c @@ -0,0 +1,42 @@ +/* Test for format checking of constant arrays. */ +/* Origin: Joseph Myers */ +/* { dg-do compile { target { *-*-mingw* } } } */ +/* { dg-options "-std=gnu99 -Wformat=2" } */ + +#define USE_SYSTEM_FORMATS +#include "format.h" + +const char a1[] = "foo"; +const char a2[] = "foo%d"; +const char b1[3] = "foo"; +const char b2[1] = "1"; +static const char c1[] = "foo"; +static const char c2[] = "foo%d"; +char d[] = "foo"; +volatile const char e[] = "foo"; + +void +foo (int i, long l) +{ + const char p1[] = "bar"; + const char p2[] = "bar%d"; + static const char q1[] = "bar"; + static const char q2[] = "bar%d"; + printf (a1); + printf (a2, i); + printf (a2, l); /* { dg-warning "format" "wrong type with array" } */ + printf (b1); /* { dg-warning "unterminated" "unterminated array" } */ + printf (b2); /* { dg-warning "unterminated" "unterminated array" } */ + printf (c1); + printf (c2, i); + printf (c2, l); /* { dg-warning "format" "wrong type with array" } */ + printf (p1); + printf (p2, i); + printf (p2, l); /* { dg-warning "format" "wrong type with array" } */ + printf (q1); + printf (q2, i); + printf (q2, l); /* { dg-warning "format" "wrong type with array" } */ + /* Volatile or non-constant arrays must not be checked. */ + printf (d); /* { dg-warning "not a string literal" "non-const" } */ + printf ((const char *)e); /* { dg-warning "not a string literal" "volatile" } */ +} -- cgit v1.2.3