diff options
author | George Karpenkov <ekarpenkov@apple.com> | 2019-02-05 22:26:44 +0000 |
---|---|---|
committer | George Karpenkov <ekarpenkov@apple.com> | 2019-02-05 22:26:44 +0000 |
commit | 6794aa702a5e80a896a034ccf56d8fb8656d935d (patch) | |
tree | 222a54011417a7accc91fc95c5f10837b178dde5 /clang/test | |
parent | 76046abbfa474300be9cac06442a6927c3cdd611 (diff) | |
download | bcm5719-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.mm | 20 |
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); +} + +} |