summaryrefslogtreecommitdiff
path: root/clang/test/Analysis/solver-sym-simplification-no-crash.c
blob: f90fad07f0c30c107b6213bb724d8915ce407deb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// RUN: %clang_analyze_cc1 %s \
// RUN:   -analyzer-checker=core \
// RUN:   -analyzer-checker=debug.ExprInspection \
// RUN:   -verify

// Here, we test that symbol simplification in the solver does not produce any
// crashes.

// expected-no-diagnostics

static int a, b;
static long c;

static void f(int i, int j)
{
    (void)(j <= 0 && i ? i : j);
}

static void g(void)
{
    int d = a - b | (c < 0);
    for (;;)
    {
        f(d ^ c, c);
    }
}