rdar-6600344-nil-receiver-undefined-struct-ret.m revision b2f6820773aabff3c5c9e0dbb1cbbbda0d80c41f
1// RUN: %clang_cc1 -analyze -analyzer-checker=core,experimental.core -analyzer-constraints=basic -analyzer-store=region -verify -Wno-objc-root-class %s
2
3typedef struct Foo { int x; } Bar;
4
5@interface MyClass {}
6- (Bar)foo;
7@end
8@implementation MyClass
9- (Bar)foo { 
10  struct Foo f = { 0 };
11  return f;
12}
13@end
14
15void createFoo() {
16  MyClass *obj = 0;  
17  Bar f = [obj foo]; // no-warning
18}
19
20void createFoo2() {
21  MyClass *obj = 0;  
22  [obj foo]; // no-warning
23  Bar f = [obj foo]; // no-warning
24}
25
26