1 // RUN: %clang_analyze_cc1 \
2 // RUN: -analyzer-checker=debug.ExprInspection %s 2>&1 | FileCheck %s
3
4 void clang_analyzer_printState();
5
test_disequality_info(int e0,int b0,int b1,int c0)6 void test_disequality_info(int e0, int b0, int b1, int c0) {
7 int e1 = e0 - b0;
8 if (b0 == 2) {
9 int e2 = e1 - b1;
10 if (e2 > 0) {
11 if (b1 != c0)
12 clang_analyzer_printState();
13 }
14 }
15 }
16
17 // CHECK: "disequality_info": [
18 // CHECK-NEXT: {
19 // CHECK-NEXT: "class": [ "(reg_$0<int e0>) - 2" ],
20 // CHECK-NEXT: "disequal_to": [
21 // CHECK-NEXT: [ "reg_$2<int b1>" ]]
22 // CHECK-NEXT: },
23 // CHECK-NEXT: {
24 // CHECK-NEXT: "class": [ "reg_$2<int b1>" ],
25 // CHECK-NEXT: "disequal_to": [
26 // CHECK-NEXT: [ "(reg_$0<int e0>) - 2" ],
27 // CHECK-NEXT: [ "reg_$3<int c0>" ]]
28 // CHECK-NEXT: },
29 // CHECK-NEXT: {
30 // CHECK-NEXT: "class": [ "reg_$3<int c0>" ],
31 // CHECK-NEXT: "disequal_to": [
32 // CHECK-NEXT: [ "reg_$2<int b1>" ]]
33 // CHECK-NEXT: }
34 // CHECK-NEXT: ],
35