// RUN: %clang_cc1 -analyze -analyzer-store=region -analyzer-constraints=range -fblocks -analyzer-opt-analyze-nested-blocks -analyzer-checker=experimental.deadcode.IdempotentOperations -verify %s

// C++ specific false positives

extern void test(int i);
extern void test_ref(int &i);

// Test references affecting pseudoconstants
void false1() {
  int a = 0;
  int five = 5;
  int &b = a;
   test(five * a); // expected-warning {{The right operand to '*' is always 0}}
   b = 4;
}

// Test not flagging idempotent operations because we aborted the analysis
// of a path because of an unsupported construct.
struct RDar9219143_Foo {
  ~RDar9219143_Foo();
  operator bool() const;
};

RDar9219143_Foo foo();
unsigned RDar9219143_bar();
void RDar9219143_test() {
  unsigned i, e;
  for (i = 0, e = RDar9219143_bar(); i != e; ++i)
    if (foo())
      break;  
  if (i == e) // no-warning
    return;
}

