diff options
author | Hans Wennborg <hans@hanshq.net> | 2011-12-15 10:25:47 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2011-12-15 10:25:47 +0000 |
commit | 23926bd2d78ca1898e8565039b6de06d329eeb9e (patch) | |
tree | 1f918189aff3cb758c6e432c89bf997e392a5f53 /clang/test/Sema/format-strings-c90.c | |
parent | adba86d63c1d5c93cc559291499d63dbc19baeb5 (diff) | |
download | bcm5719-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.c | 21 |
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); +} |