diff options
| author | Artem Dergachev <artem.dergachev@gmail.com> | 2018-08-29 22:39:20 +0000 |
|---|---|---|
| committer | Artem Dergachev <artem.dergachev@gmail.com> | 2018-08-29 22:39:20 +0000 |
| commit | 5a3beea0e3178590b694fae03d39423c30369e98 (patch) | |
| tree | b2d0cc78802158b684586be06bbdb165e3e4e461 /clang/test | |
| parent | 5bce4d5a85b49519e0f3b0a8eaad6421c4eb387d (diff) | |
| download | bcm5719-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.mm | 15 |
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 +} +} |

