Introduce ObjCMessageExpr::getReceiverRange() to get the source range of the receiver.
[clang.git] / test / Analysis / rdar-6562655.m
blob2aa22294172c5c9222975cb3e7d408b1b82bda50
1 // RUN: %clang_cc1 -analyze -analyzer-experimental-internal-checks -analyzer-check-objc-mem -analyzer-constraints=basic -analyzer-store=basic -verify %s
2 // RUN: %clang_cc1 -analyze -analyzer-experimental-internal-checks -analyzer-check-objc-mem -analyzer-constraints=basic -analyzer-store=region -verify %s
3 //
4 // This test case mainly checks that the retain/release checker doesn't crash
5 // on this file.
6 //
7 typedef int int32_t;
8 typedef signed char BOOL;
9 typedef long NSInteger;
10 typedef unsigned long NSUInteger;
11 typedef struct _NSZone NSZone;
12 @class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator;
13 @protocol NSObject  - (BOOL)isEqual:(id)object;
14 @end  @protocol NSCopying  - (id)copyWithZone:(NSZone *)zone;
15 @end  @protocol NSCoding  - (void)encodeWithCoder:(NSCoder *)aCoder;
16 @end    @interface NSObject <NSObject> {}
17 @end      extern id NSAllocateObject(Class aClass, NSUInteger extraBytes, NSZone *zone);
18 @interface NSResponder : NSObject <NSCoding> {}
19 @end    @protocol NSAnimatablePropertyContainer      - (id)animator;
20 @end  extern NSString *NSAnimationTriggerOrderIn ;
21 @interface NSView : NSResponder  <NSAnimatablePropertyContainer>  {
23 @end    enum {
24 NSNullCellType = 0,     NSTextCellType = 1,     NSImageCellType = 2 };
25 typedef struct __CFlags {
26   unsigned int botnet:3;
28   _CFlags;
29 @interface Bar : NSObject <NSCopying, NSCoding> {
30   _CFlags _cFlags;
31 @private       id _support;
33 @end  extern NSString *NSControlTintDidChangeNotification;
34 typedef NSInteger NSBotnet;
35 @interface NSControl : NSView {
37 @end @class NSAttributedString, NSFont, NSImage, NSSound;
38 typedef int32_t Baz;
39 @interface Bar(BarInternal) - (void)_setIsWhite:(BOOL)isWhite;
40 @end
41 @interface Bar (BarBotnetCompatibility)
42 - (NSBotnet)_initialBotnetZorg;
43 @end
44 typedef struct _NSRunArrayItem {
45   unsigned int botnetIsSet:1;
46 } BarAuxFlags;
47 @interface BarAuxiliary : NSObject {
48 @public
49   NSControl *controlView;
50   BarAuxFlags auxCFlags;
52 @end
53 @implementation Bar
54 static Baz Qux = 0;
55 - (id)copyWithZone:(NSZone *)zone { return 0; }
56 - (void)encodeWithCoder:(NSCoder *)coder {}
57 @end
58 @implementation Bar (BarBotnet)
59 - (NSBotnet)botnet {
60   if (!(*(BarAuxiliary **)&self->_support)->auxCFlags.botnetIsSet) {
61     _cFlags.botnet = [self _initialBotnetZorg];
62   }
63   while (1) {}
65 @end