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