inline-defensive-checks.cpp revision 0415998dd77986630efe8f1aed633519cc41e1f3
1// RUN: %clang_cc1 -analyze -analyzer-checker=core -verify %s
2// expected-no-diagnostics
3
4class ButterFly {
5private:
6  ButterFly() { }
7public:
8	int triggerderef() {
9		return 0;
10	}
11};
12ButterFly *getInP();
13class X{
14	ButterFly *p;
15	void setP(ButterFly *inP) {
16		if(inP)
17      ;
18		p = inP;
19	};
20	void subtest1() {
21		ButterFly *inP = getInP();
22		setP(inP);
23	}
24	int subtest2() {
25		int c = p->triggerderef(); // no-warning
26		return c;
27	}
28	int test() {
29		subtest1();
30		return subtest2();
31	}
32};