diff options
author | Anna Zaks <ganna@apple.com> | 2012-05-03 23:50:33 +0000 |
---|---|---|
committer | Anna Zaks <ganna@apple.com> | 2012-05-03 23:50:33 +0000 |
commit | 6ccfcf346d6af9e2f42e723a0a64740d14387fd3 (patch) | |
tree | 3b3927ce3d3f6c9567e71b1d75cdbc73de6d2ac9 /clang/test/Analysis/malloc.c | |
parent | 228f9c7b68fd2bf56b32623251b54f3d3c9ee3b7 (diff) | |
download | bcm5719-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.c | 10 |
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. |