1 // RUN: %clang_analyze_cc1 -w -Wno-int-conversion %s -verify \
2 // RUN: -analyzer-checker=core,alpha.core,debug.ExprInspection
4 #ifdef HEADER // A clever trick to avoid splitting up the test.
5 extern void clang_analyzer_eval(int);
10 @interface HeaderClass : NSObject
11 @property NSObject *prop;
16 #include "ObjCProperties.m"
18 @implementation HeaderClass
23 // This test tests that no dynamic bifurcation is performed on the property.
24 // The TRUE/FALSE dilemma correctly arises from eagerly-assume behavior
25 // inside the if-statement. The dynamic bifurcation at (self.prop) inside
26 // the if-statement was causing an UNKNOWN to show up as well due to
27 // extra parentheses being caught inside PseudoObjectExpr.
28 // This should not be UNKNOWN.
29 clang_analyzer_eval(self.prop); // expected-warning{{TRUE}}
30 // expected-warning@-1{{FALSE}}
35 // The point of this test cases is to exercise properties in the static
42 - (id)initWithY:(id)Y;
43 @property(copy, readwrite) id X;
46 @implementation MyClass
48 - (id)initWithY:(id)Y {