summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorGeorge Karpenkov <ekarpenkov@apple.com>2019-02-05 22:26:44 +0000
committerGeorge Karpenkov <ekarpenkov@apple.com>2019-02-05 22:26:44 +0000
commit6794aa702a5e80a896a034ccf56d8fb8656d935d (patch)
tree222a54011417a7accc91fc95c5f10837b178dde5 /clang/test
parent76046abbfa474300be9cac06442a6927c3cdd611 (diff)
downloadbcm5719-llvm-6794aa702a5e80a896a034ccf56d8fb8656d935d.tar.gz
bcm5719-llvm-6794aa702a5e80a896a034ccf56d8fb8656d935d.zip
[analyzer] [RetainCountChecker] Bugfix: in non-OSObject-mode, do not track CXX method calls
Differential Revision: https://reviews.llvm.org/D57782 llvm-svn: 353227
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/Analysis/retain-release.mm20
1 files changed, 19 insertions, 1 deletions
diff --git a/clang/test/Analysis/retain-release.mm b/clang/test/Analysis/retain-release.mm
index 5dc8f857d87..97ea5607d2d 100644
--- a/clang/test/Analysis/retain-release.mm
+++ b/clang/test/Analysis/retain-release.mm
@@ -471,7 +471,6 @@ void rdar33832412() {
void* x = IOBSDNameMatching(); // no-warning
}
-
namespace member_CFRetains {
class Foo {
public:
@@ -485,3 +484,22 @@ void bar() {
foo.CFRetain(0); // no-warning
}
}
+
+namespace cxx_method_escaping {
+
+struct S {
+ static CFArrayRef testGetNoTracking();
+ CFArrayRef testGetNoTrackingMember();
+};
+
+void test_cxx_static_method_escaping() {
+ CFArrayRef arr = S::testGetNoTracking();
+ CFRelease(arr);
+}
+
+void test_cxx_method_escaping(S *s) {
+ CFArrayRef arr = s->testGetNoTrackingMember();
+ CFRelease(arr);
+}
+
+}
OpenPOWER on IntegriCloud