1// RUN: %clang_analyze_cc1 -analyzer-checker=core -verify %s 2// RUN: %clang_analyze_cc1 -analyzer-checker=core -verify -fobjc-arc %s 3 4#if __has_feature(objc_arc) 5// expected-no-diagnostics 6#endif 7 8@interface SomeClass 9@end 10 11void simpleStrongPointerValue() { 12 SomeClass *x; 13 if (x) {} 14#if !__has_feature(objc_arc) 15// expected-warning@-2{{Branch condition evaluates to a garbage value}} 16#endif 17} 18 19void simpleArray() { 20 SomeClass *vlaArray[5]; 21 22 if (vlaArray[0]) {} 23#if !__has_feature(objc_arc) 24// expected-warning@-2{{Branch condition evaluates to a garbage value}} 25#endif 26} 27 28void variableLengthArray() { 29 int count = 1; 30 SomeClass * vlaArray[count]; 31 32 if (vlaArray[0]) {} 33#if !__has_feature(objc_arc) 34 // expected-warning@-2{{Branch condition evaluates to a garbage value}} 35#endif 36} 37 38void variableLengthArrayWithExplicitStrongAttribute() { 39 int count = 1; 40 __attribute__((objc_ownership(strong))) SomeClass * vlaArray[count]; 41 42 if (vlaArray[0]) {} 43#if !__has_feature(objc_arc) 44 // expected-warning@-2{{Branch condition evaluates to a garbage value}} 45#endif 46} 47