// RUN: %clang_analyze_cc1 -analyzer-checker=core -verify %s
// expected-no-diagnostics
classB{public:bool m;~B(){}// The destructor ensures that the binary logical operator below is wrapped in the ExprWithCleanups.
};
B foo();intgetBool();int*getPtr();inttest(){int r =0;for(int x =0; x<10; x++){int*p =getPtr();// Liveness info is not computed correctly due to the following expression.
// This happens due to CFG being special cased for short circuit operators.
// PR18159
if(p !=0&&getBool()&&foo().m&&getBool()){
r =*p;// no warning
}}return r;}