From 81c84a9755c511b8f4c2cf9abe45fc47e705309a Mon Sep 17 00:00:00 2001 From: George Karpenkov Date: Mon, 30 Jul 2018 22:18:21 +0000 Subject: [analyzer] Bugfix for autorelease + main run loop leak checker Do not warn when the other message-send-expression is correctly wrapped in a different autorelease pool. Differential Revision: https://reviews.llvm.org/D49921 llvm-svn: 338314 --- clang/test/Analysis/Checkers/RunLoopAutoreleaseLeakChecker.m | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'clang/test/Analysis') diff --git a/clang/test/Analysis/Checkers/RunLoopAutoreleaseLeakChecker.m b/clang/test/Analysis/Checkers/RunLoopAutoreleaseLeakChecker.m index 32fc2206a31..b00d71b1a4d 100644 --- a/clang/test/Analysis/Checkers/RunLoopAutoreleaseLeakChecker.m +++ b/clang/test/Analysis/Checkers/RunLoopAutoreleaseLeakChecker.m @@ -29,6 +29,17 @@ void runloop_init_before() { // Warning: object created before the loop. } } +void runloop_init_before_separate_pool() { // No warning: separate autorelease pool. + @autoreleasepool { + NSObject *object; + @autoreleasepool { + object = [[NSObject alloc] init]; // no-warning + } + (void) object; + [[NSRunLoop mainRunLoop] run]; + } +} + void xpcmain_init_before() { // Warning: object created before the loop. @autoreleasepool { NSObject *object = [[NSObject alloc] init]; // expected-warning{{Temporary objects allocated in the autorelease pool followed by the launch of xpc_main may never get released; consider moving them to a separate autorelease pool}} -- cgit v1.2.3