summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis/malloc.c
diff options
context:
space:
mode:
authorAnna Zaks <ganna@apple.com>2012-05-03 23:50:33 +0000
committerAnna Zaks <ganna@apple.com>2012-05-03 23:50:33 +0000
commit6ccfcf346d6af9e2f42e723a0a64740d14387fd3 (patch)
tree3b3927ce3d3f6c9567e71b1d75cdbc73de6d2ac9 /clang/test/Analysis/malloc.c
parent228f9c7b68fd2bf56b32623251b54f3d3c9ee3b7 (diff)
downloadbcm5719-llvm-6ccfcf346d6af9e2f42e723a0a64740d14387fd3.tar.gz
bcm5719-llvm-6ccfcf346d6af9e2f42e723a0a64740d14387fd3.zip
[analyzer] Assume pointer escapes when a callback is passed inside
a struct. llvm-svn: 156135
Diffstat (limited to 'clang/test/Analysis/malloc.c')
-rw-r--r--clang/test/Analysis/malloc.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/test/Analysis/malloc.c b/clang/test/Analysis/malloc.c
index f5bff4fa43b..a7d5b0b0e94 100644
--- a/clang/test/Analysis/malloc.c
+++ b/clang/test/Analysis/malloc.c
@@ -819,6 +819,16 @@ void r11160612_4() {
sqlite3_bind_text_my(0, x, 12, free); // no - warning
}
+// Passing callbacks in a struct.
+void r11160612_5(StWithCallback St) {
+ void *x = malloc(12);
+ dealocateMemWhenDoneByVal(x, St);
+}
+void r11160612_6(StWithCallback St) {
+ void *x = malloc(12);
+ dealocateMemWhenDoneByRef(&St, x);
+}
+
// ----------------------------------------------------------------------------
// Below are the known false positives.
OpenPOWER on IntegriCloud