summaryrefslogtreecommitdiffstats
path: root/clang/test/Sema/format-strings-c90.c
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2011-12-15 10:25:47 +0000
committerHans Wennborg <hans@hanshq.net>2011-12-15 10:25:47 +0000
commit23926bd2d78ca1898e8565039b6de06d329eeb9e (patch)
tree1f918189aff3cb758c6e432c89bf997e392a5f53 /clang/test/Sema/format-strings-c90.c
parentadba86d63c1d5c93cc559291499d63dbc19baeb5 (diff)
downloadbcm5719-llvm-23926bd2d78ca1898e8565039b6de06d329eeb9e.tar.gz
bcm5719-llvm-23926bd2d78ca1898e8565039b6de06d329eeb9e.zip
Support the 'a' length modifier in scanf format strings as a C90
extension. This fixes gcc.dg/format/c90-scanf-3.c and ext-4.c (test for excess errors). llvm-svn: 146649
Diffstat (limited to 'clang/test/Sema/format-strings-c90.c')
-rw-r--r--clang/test/Sema/format-strings-c90.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/clang/test/Sema/format-strings-c90.c b/clang/test/Sema/format-strings-c90.c
new file mode 100644
index 00000000000..1b00c38c041
--- /dev/null
+++ b/clang/test/Sema/format-strings-c90.c
@@ -0,0 +1,21 @@
+/* RUN: %clang_cc1 -fsyntax-only -verify -pedantic -std=c89 %s
+ */
+
+int scanf(const char * restrict, ...);
+int printf(const char *restrict, ...);
+
+void foo(char **sp, float *fp, int *ip) {
+ /* TODO: Warn that the 'a' length modifier is an extension. */
+ scanf("%as", sp);
+
+ /* TODO: Warn that the 'a' conversion specifier is a C99 feature. */
+ scanf("%a", fp);
+ scanf("%afoobar", fp);
+ printf("%a", 1.0);
+ printf("%as", 1.0);
+ printf("%aS", 1.0);
+ printf("%a[", 1.0);
+ printf("%afoo", 1.0);
+
+ scanf("%da", ip);
+}
OpenPOWER on IntegriCloud