llvm-project/clang/test/Analysis/solver-sym-simplification-no-crash2.c
Aaron Ballman 1ea584377e A significant number of our tests in C accidentally use functions
without prototypes. This patch converts the function signatures to have
a prototype for the situations where the test is not specific to K&R C
declarations. e.g.,

  void func();

becomes

  void func(void);

This is the ninth batch of tests being updated (there are a
significant number of other tests left to be updated).
2022-02-13 08:03:40 -05:00

24 lines
475 B
C

// 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.
// https://bugs.llvm.org/show_bug.cgi?id=51109
// expected-no-diagnostics
int a, b, c, d;
void f(void) {
a = -1;
d = b * a;
a = d / c;
if (a < 7 / b)
return;
if (d *a / c < 7 / b)
return;
if (b == 1 && c == -1)
return;
}