summaryrefslogtreecommitdiffstats
path: root/clang/test/Sema/format-strings-scanf.c
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2012-01-12 15:07:16 +0000
committerHans Wennborg <hans@hanshq.net>2012-01-12 15:07:16 +0000
commitfd950878fa902a9d5ec6f3accd96bad12ca8979f (patch)
tree395ab8f69201d11453ec4df705de301a8a1e95d4 /clang/test/Sema/format-strings-scanf.c
parent32f115f9c1cc594400542e5883593938e1166421 (diff)
downloadbcm5719-llvm-fd950878fa902a9d5ec6f3accd96bad12ca8979f.tar.gz
bcm5719-llvm-fd950878fa902a9d5ec6f3accd96bad12ca8979f.zip
scanf analysis: the 'a' length modifier is valid with a scanlist
Before r148025 we (accidentally) didn't check whether a length modifier is appropriate for a scanlist, but now we do. llvm-svn: 148026
Diffstat (limited to 'clang/test/Sema/format-strings-scanf.c')
-rw-r--r--clang/test/Sema/format-strings-scanf.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/test/Sema/format-strings-scanf.c b/clang/test/Sema/format-strings-scanf.c
index 2e32a26ac5c..7a2f278aebd 100644
--- a/clang/test/Sema/format-strings-scanf.c
+++ b/clang/test/Sema/format-strings-scanf.c
@@ -68,8 +68,9 @@ void test_variants(int *i, const char *s, ...) {
vsscanf(buf, "%[abc", ap); // expected-warning{{no closing ']' for '%[' in scanf format string}}
}
-void test_scanlist(int *ip) {
+void test_scanlist(int *ip, char *sp) {
scanf("%[abc]", ip); // expected-warning{{conversion specifies type 'char *' but the argument has type 'int *'}}
+ scanf("%h[abc]", sp); // expected-warning{{length modifier 'h' results in undefined behavior or no effect with '[' conversion specifier}}
}
void test_alloc_extension(char **sp, wchar_t **lsp) {
OpenPOWER on IntegriCloud