]> granicus.if.org Git - clang/commitdiff
Add initial test cases for scanf format string checking.
authorTed Kremenek <kremenek@apple.com>
Fri, 16 Jul 2010 02:11:34 +0000 (02:11 +0000)
committerTed Kremenek <kremenek@apple.com>
Fri, 16 Jul 2010 02:11:34 +0000 (02:11 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108503 91177308-0d34-0410-b5e6-96231b3b80d8

test/Sema/format-strings-scanf.c [new file with mode: 0644]

diff --git a/test/Sema/format-strings-scanf.c b/test/Sema/format-strings-scanf.c
new file mode 100644 (file)
index 0000000..cd68410
--- /dev/null
@@ -0,0 +1,14 @@
+// RUN: %clang_cc1 -fsyntax-only -verify -Wformat-nonliteral %s
+
+typedef __typeof(sizeof(int)) size_t;
+typedef struct _FILE FILE;
+
+int fscanf(FILE * restrict, const char * restrict, ...) ;
+int scanf(const char * restrict, ...) ;
+int sscanf(const char * restrict, const char * restrict, ...) ;
+
+void test(const char *s, int *i) {
+  scanf(s, i); // expected-warning{{ormat string is not a string literal}}
+  scanf("%0d", i); // expected-warning{{conversion specifies 0 input characters for field width}}
+  scanf("%00d", i); // expected-warning{{conversion specifies 0 input characters for field width}}
+}