| // RUN: %clang_cc1 -triple i386-apple-darwin8 -analyze -analyzer-checker=core,experimental.core -analyzer-constraints=range -analyzer-store=region -verify %s |
| |
| // <rdar://problem/6888289> - This test case shows that a nil instance |
| // variable can possibly be initialized by a method. |
| @interface RDar6888289 |
| { |
| id *x; |
| } |
| - (void) test:(id) y; |
| - (void) test2:(id) y; |
| - (void) invalidate; |
| @end |
| |
| id *getVal(void); |
| |
| @implementation RDar6888289 |
| - (void) test:(id)y { |
| if (!x) |
| [self invalidate]; |
| *x = y; |
| } |
| - (void) test2:(id)y { |
| if (!x) {} |
| *x = y; // expected-warning {{null}} |
| } |
| |
| - (void) invalidate { |
| x = getVal(); |
| } |
| |
| @end |
| |