Clang Project

clang_source_code/test/Analysis/hangs.c
1// RUN: %clang_analyze_cc1 -analyzer-checker core -verify %s
2
3// expected-no-diagnostics
4
5// Stuff that used to hang.
6
7int g();
8
9int f(int y) {
10  return y + g();
11}
12
13int produce_a_very_large_symbol(int x) {
14  return f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(
15             f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(x))))))))))))))))))))))))))))))));
16}
17
18void produce_an_exponentially_exploding_symbol(int x, int y) {
19  x += y; y += x + g();
20  x += y; y += x + g();
21  x += y; y += x + g();
22  x += y; y += x + g();
23  x += y; y += x + g();
24  x += y; y += x + g();
25  x += y; y += x + g();
26  x += y; y += x + g();
27  x += y; y += x + g();
28  x += y; y += x + g();
29  x += y; y += x + g();
30}
31