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};