// RUN: %clang_analyze_cc1 %s \ // RUN: -analyzer-checker=core \ // RUN: -analyzer-checker=debug.ExprInspection \ // RUN: -analyzer-config eagerly-assume=false \ // RUN: -verify // Here we test whether the SValBuilder is capable to simplify existing // SVals based on a newly added constraints when evaluating a BinOp. void clang_analyzer_eval(bool); void test_evalBinOp_simplifies_lhs(int y) { int x = y / 77; if (y != 77) return; // Below `x` is the LHS being simplified. clang_analyzer_eval(x == 1); // expected-warning{{TRUE}} (void)(x * y); } void test_evalBinOp_simplifies_rhs(int y) { int x = y / 77; if (y != 77) return; // Below `x` is the RHS being simplified. clang_analyzer_eval(1 == x); // expected-warning{{TRUE}} (void)(x * y); }