|  | // RUN: %clang_cc1 -analyze %s -analyzer-checker=core,osx.cocoa.RetainCount -fblocks -verify | 
|  |  | 
|  | // This test is checking behavior when a single checker runs only with the core | 
|  | // checkers, testing that the traversal order in the CFG does not affect the | 
|  | // reporting of an error. | 
|  |  | 
|  | #import "Inputs/system-header-simulator-objc.h" | 
|  |  | 
|  | void testDoubleRelease(BOOL z) { | 
|  | id x = [[NSObject alloc] init]; | 
|  | if (z) { | 
|  | [x release]; | 
|  | } else { | 
|  | ; | 
|  | } | 
|  | [x release]; // expected-warning {{Reference-counted object is used after it is released}} | 
|  | } | 
|  |  | 
|  | void testDoubleRelease2(BOOL z) { | 
|  | id x = [[NSObject alloc] init]; | 
|  | if (z) { | 
|  | ; | 
|  | } else { | 
|  | [x release]; | 
|  | } | 
|  | [x release]; // expected-warning {{Reference-counted object is used after it is released}} | 
|  | } |