// RUN: %clang_analyze_cc1 -analyzer-checker=core -verify %s
// expected-no-diagnostics
class B {
public:
  bool m;
  ~B() {} // The destructor ensures that the binary logical operator below is wrapped in the ExprWithCleanups.
};
B foo();
int getBool();
int *getPtr();
int test() {
  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;
}
