diff options
author | Ted Kremenek <kremenek@apple.com> | 2010-07-16 02:11:34 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2010-07-16 02:11:34 +0000 |
commit | 5530131bb786d649a55c60cfbc5cae569aa26f2d (patch) | |
tree | 84037518fa0fb0244380ae73c72dd562e7a11ad0 /clang | |
parent | a1ef09407d41c8a678c517d191db13a62533c4c9 (diff) | |
download | bcm5719-llvm-5530131bb786d649a55c60cfbc5cae569aa26f2d.tar.gz bcm5719-llvm-5530131bb786d649a55c60cfbc5cae569aa26f2d.zip |
Add initial test cases for scanf format string checking.
llvm-svn: 108503
Diffstat (limited to 'clang')
-rw-r--r-- | clang/test/Sema/format-strings-scanf.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/test/Sema/format-strings-scanf.c b/clang/test/Sema/format-strings-scanf.c new file mode 100644 index 00000000000..cd684106937 --- /dev/null +++ b/clang/test/Sema/format-strings-scanf.c @@ -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}} +} |