blob: 5d1fa37c46a845b7ecb22d2e63dd397631b456c2 [file] [log] [blame]
Daniel Dunbarffd408a2009-03-24 02:24:46 +00001// RUN: clang-cc -analyze -checker-cfref -analyzer-constraints=basic -analyzer-store=basic %s -verify
Ted Kremenek72cb7682009-02-19 04:07:38 +00002
3typedef struct Foo { int x; } Bar;
4
5@interface MyClass {}
6- (Bar)foo;
7@end
8@implementation MyClass
9- (Bar)foo {
10 struct Foo f = { 0 };
11 return f;
12}
13@end
14
15void createFoo() {
16 MyClass *obj = 0;
17 Bar f = [obj foo]; // expected-warning{{The receiver in the message expression is 'nil' and results in the returned value (of type 'Bar') to be garbage or otherwise undefined.}}
18}
19
Ted Kremenek75732212009-04-01 06:52:48 +000020void createFoo2() {
21 MyClass *obj = 0;
22 [obj foo]; // no-warning
23 Bar f = [obj foo]; // expected-warning{{The receiver in the message expression is 'nil' and results in the returned value (of type 'Bar') to be garbage or otherwise undefined.}}
24}
25