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