diff options
Diffstat (limited to 'clang/test/Analysis/string.c')
-rw-r--r-- | clang/test/Analysis/string.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/clang/test/Analysis/string.c b/clang/test/Analysis/string.c index d21ec11c111..7612614bc09 100644 --- a/clang/test/Analysis/string.c +++ b/clang/test/Analysis/string.c @@ -867,6 +867,12 @@ void strcmp_union_function_pointer_cast(union argument a) { fPtr(&a); } +int strcmp_null_argument(char *a) { + char *b = 0; + // Do not warn about the first argument! + return strcmp(a, b); // expected-warning{{Null pointer passed as 2nd argument to string comparison function}} +} + //===----------------------------------------------------------------------=== // strncmp() //===----------------------------------------------------------------------=== @@ -976,6 +982,12 @@ void strncmp_embedded_null () { clang_analyzer_eval(strncmp("ab\0zz", "ab\0yy", 4) == 0); // expected-warning{{TRUE}} } +int strncmp_null_argument(char *a, size_t n) { + char *b = 0; + // Do not warn about the first argument! + return strncmp(a, b, n); // expected-warning{{Null pointer passed as 2nd argument to string comparison function}} +} + //===----------------------------------------------------------------------=== // strcasecmp() //===----------------------------------------------------------------------=== @@ -1067,6 +1079,12 @@ void strcasecmp_embedded_null () { clang_analyzer_eval(strcasecmp("ab\0zz", "ab\0yy") == 0); // expected-warning{{TRUE}} } +int strcasecmp_null_argument(char *a) { + char *b = 0; + // Do not warn about the first argument! + return strcasecmp(a, b); // expected-warning{{Null pointer passed as 2nd argument to string comparison function}} +} + //===----------------------------------------------------------------------=== // strncasecmp() //===----------------------------------------------------------------------=== @@ -1176,6 +1194,12 @@ void strncasecmp_embedded_null () { clang_analyzer_eval(strncasecmp("ab\0zz", "ab\0yy", 4) == 0); // expected-warning{{TRUE}} } +int strncasecmp_null_argument(char *a, size_t n) { + char *b = 0; + // Do not warn about the first argument! + return strncasecmp(a, b, n); // expected-warning{{Null pointer passed as 2nd argument to string comparison function}} +} + //===----------------------------------------------------------------------=== // strsep() //===----------------------------------------------------------------------=== |