1*f4a2713aSLionel Sambuc// RUN: %clang_cc1 -analyze -analyzer-checker=core -verify -Wno-objc-root-class %s 2*f4a2713aSLionel Sambuc// expected-no-diagnostics 3*f4a2713aSLionel Sambuc 4*f4a2713aSLionel Sambuc// Test reasoning about static locals in ObjCMethods. 5*f4a2713aSLionel Sambucint *getValidPtr(); 6*f4a2713aSLionel Sambuc@interface Radar11275803 7*f4a2713aSLionel Sambuc- (int) useStaticInMethod; 8*f4a2713aSLionel Sambuc@end 9*f4a2713aSLionel Sambuc@implementation Radar11275803 10*f4a2713aSLionel Sambuc 11*f4a2713aSLionel Sambuc- (int) useStaticInMethod 12*f4a2713aSLionel Sambuc{ 13*f4a2713aSLionel Sambuc static int *explInit = 0; 14*f4a2713aSLionel Sambuc static int implInit; 15*f4a2713aSLionel Sambuc if (!implInit) 16*f4a2713aSLionel Sambuc explInit = getValidPtr(); 17*f4a2713aSLionel Sambuc return *explInit; //no-warning 18*f4a2713aSLionel Sambuc} 19*f4a2713aSLionel Sambuc@end