// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.DumpTraversal %s | FileCheck %s
// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.DumpTraversal -DUSE_EXPR %s | FileCheck %s

int a(void);
int b(void);
int c(void);

#ifdef USE_EXPR
#define CHECK(x) ((x) & 1)
#else
#define CHECK(x) (x)
#endif

// CHECK: --BEGIN FUNCTION--
void testRemoveDeadBindings(void) {
  int i = a();
  if (CHECK(i))
    a();
  else
    b();

  // At this point the symbol bound to 'i' is dead.
  // The effects of a() and b() are identical (they both invalidate globals).
  // We should unify the two paths here and only get one end-of-path node.
  c();
}

// CHECK: --END FUNCTION--
// CHECK-NOT: --END FUNCTION--
