// RUN: %clang_analyze_cc1 \
// RUN:  -analyzer-checker=debug.ExprInspection %s 2>&1 | FileCheck %s

void clang_analyzer_printState();

void test_equivalence_classes(int a, int b, int c, int d) {
  if (a + b != c)
    return;
  if (a != d)
    return;
  if (b != 0)
    return;
  clang_analyzer_printState();
  (void)(a * b * c * d);
  return;
}

// CHECK:      "equivalence_classes": [
// CHECK-NEXT:   [ "((reg_$0<int a>) + (reg_$1<int b>)) != (reg_$2<int c>)", "(reg_$0<int a>) != (reg_$2<int c>)" ],
// CHECK-NEXT:   [ "(reg_$0<int a>) + (reg_$1<int b>)", "reg_$0<int a>", "reg_$2<int c>", "reg_$3<int d>" ]
// CHECK-NEXT: ],
