|  | // RUN: clang-cc -analyze -checker-simple -analyzer-store=basic -analyzer-constraints=basic %s -verify && | 
|  | // RUN: clang-cc -analyze -checker-simple -analyzer-store=basic -analyzer-constraints=range %s -verify && | 
|  | // RUN: clang-cc -analyze -checker-cfref -analyzer-store=basic -analyzer-constraints=basic %s -verify && | 
|  | // RUN: clang-cc -analyze -checker-cfref -analyzer-store=basic -analyzer-constraints=range %s -verify && | 
|  | // RUN: clang-cc -analyze -checker-cfref -analyzer-store=region -analyzer-constraints=basic %s -verify && | 
|  | // RUN: clang-cc -analyze -checker-cfref -analyzer-store=region -analyzer-constraints=range %s -verify | 
|  |  | 
|  | // The point of this test cases is to exercise properties in the static | 
|  | // analyzer | 
|  |  | 
|  | @interface MyClass { | 
|  | @private | 
|  | id _X; | 
|  | } | 
|  | - (id)initWithY:(id)Y; | 
|  | @property(copy, readwrite) id X; | 
|  | @end | 
|  |  | 
|  | @implementation MyClass | 
|  | @synthesize X = _X; | 
|  | - (id)initWithY:(id)Y { | 
|  | self.X = Y; | 
|  | return self; | 
|  | } | 
|  | @end |