summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis/bstring.c
diff options
context:
space:
mode:
authorJordy Rose <jediknil@belkadan.com>2011-06-04 00:04:22 +0000
committerJordy Rose <jediknil@belkadan.com>2011-06-04 00:04:22 +0000
commit63b84be6cb338be9d8ff4323991cd49281b81527 (patch)
tree8443a6b60d226fab225da13907f84e3f4baf86e7 /clang/test/Analysis/bstring.c
parentbe605494ac145704dea6d216e1e4368f71cd5186 (diff)
downloadbcm5719-llvm-63b84be6cb338be9d8ff4323991cd49281b81527.tar.gz
bcm5719-llvm-63b84be6cb338be9d8ff4323991cd49281b81527.zip
[analyzer] Fix handling of "copy zero bytes" for memcpy and friends.
llvm-svn: 132607
Diffstat (limited to 'clang/test/Analysis/bstring.c')
-rw-r--r--clang/test/Analysis/bstring.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/clang/test/Analysis/bstring.c b/clang/test/Analysis/bstring.c
index d74be0ffce5..de88e9ae6fc 100644
--- a/clang/test/Analysis/bstring.c
+++ b/clang/test/Analysis/bstring.c
@@ -136,6 +136,18 @@ void memcpy13() {
memcpy(a, 0, 0); // no-warning
}
+void memcpy_unknown_size (size_t n) {
+ char a[4], b[4] = {1};
+ if (memcpy(a, b, n) != a)
+ (void)*(char*)0; // no-warning
+}
+
+void memcpy_unknown_size_warn (size_t n) {
+ char a[4];
+ if (memcpy(a, 0, n) != a) // expected-warning{{Null pointer argument in call to byte string function}}
+ (void)*(char*)0; // no-warning
+}
+
//===----------------------------------------------------------------------===
// mempcpy()
//===----------------------------------------------------------------------===
@@ -246,6 +258,12 @@ void mempcpy13() {
mempcpy(a, 0, 0); // no-warning
}
+void mempcpy_unknown_size_warn (size_t n) {
+ char a[4];
+ if (mempcpy(a, 0, n) != a) // expected-warning{{Null pointer argument in call to byte string function}}
+ (void)*(char*)0; // no-warning
+}
+
//===----------------------------------------------------------------------===
// memmove()
//===----------------------------------------------------------------------===
OpenPOWER on IntegriCloud