summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis/string.c
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/Analysis/string.c')
-rw-r--r--clang/test/Analysis/string.c24
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()
//===----------------------------------------------------------------------===
OpenPOWER on IntegriCloud