summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorArtem Dergachev <artem.dergachev@gmail.com>2018-08-29 22:39:20 +0000
committerArtem Dergachev <artem.dergachev@gmail.com>2018-08-29 22:39:20 +0000
commit5a3beea0e3178590b694fae03d39423c30369e98 (patch)
treeb2d0cc78802158b684586be06bbdb165e3e4e461 /clang/test
parent5bce4d5a85b49519e0f3b0a8eaad6421c4eb387d (diff)
downloadbcm5719-llvm-5a3beea0e3178590b694fae03d39423c30369e98.tar.gz
bcm5719-llvm-5a3beea0e3178590b694fae03d39423c30369e98.zip
[analyzer] CFRetainReleaseChecker: Don't check C++ methods with the same name.
Don't try to understand what's going on when there's a C++ method called eg. CFRetain(). Refactor the checker a bit, to use more modern APIs. Differential Revision: https://reviews.llvm.org/D50866 llvm-svn: 340982
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/Analysis/retain-release.mm15
1 files changed, 15 insertions, 0 deletions
diff --git a/clang/test/Analysis/retain-release.mm b/clang/test/Analysis/retain-release.mm
index ac83c1a48e3..5dc8f857d87 100644
--- a/clang/test/Analysis/retain-release.mm
+++ b/clang/test/Analysis/retain-release.mm
@@ -470,3 +470,18 @@ void* IOBSDNameMatching();
void rdar33832412() {
void* x = IOBSDNameMatching(); // no-warning
}
+
+
+namespace member_CFRetains {
+class Foo {
+public:
+ void CFRetain(const Foo &) {}
+ void CFRetain(int) {}
+};
+
+void bar() {
+ Foo foo;
+ foo.CFRetain(foo); // no-warning
+ foo.CFRetain(0); // no-warning
+}
+}
OpenPOWER on IntegriCloud