brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.6 KiB · 455ee41 Raw
221 lines · c
1// RUN: %clang_analyze_cc1 -verify %s \2// RUN:   -analyzer-checker core,debug.ExprInspection3 4// Stuff that used to hang.5 6extern void __assert_fail(__const char *__assertion, __const char *__file,7                          unsigned int __line, __const char *__function)8    __attribute__((__noreturn__));9#define assert(expr) \10  ((expr) ? (void)(0) : __assert_fail(#expr, __FILE__, __LINE__, __func__))11 12void clang_analyzer_eval(int);13 14int g(void);15 16int f(int y) {17  return y + g();18}19 20int produce_a_very_large_symbol(int x) {21  return f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(22             f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(x))))))))))))))))))))))))))))))));23}24 25void produce_an_exponentially_exploding_symbol(int x, int y) {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  x += y; y += x + g();31  x += y; y += x + g();32  x += y; y += x + g();33  x += y; y += x + g();34  x += y; y += x + g();35  x += y; y += x + g();36  x += y; y += x + g();37}38 39void produce_an_exponentially_exploding_symbol_2(int x, int y) {40  x &= y;41  y &= x & g();42  x &= y;43  y &= x & g();44  x &= y;45  y &= x & g();46  x &= y;47  y &= x & g();48  x &= y;49  y &= x & g();50  x &= y;51  y &= x & g();52  x &= y;53  y &= x & g();54  x &= y;55  y &= x & g();56  x &= y;57  y &= x & g();58  x &= y;59  y &= x & g();60  x &= y;61  y &= x & g();62  if (x > 1) {63    if (x > 2) {64      if (x > 3) {65        if (x > 4) {66          if (x > 5) {67            if (x > 6) {68              if (x > 7) {69                if (x > 8) {70                  if (x > 9) {71                    if (x > 10) {72                    }73                  }74                }75              }76            }77          }78        }79      }80    }81  }82}83 84void produce_an_exponentially_exploding_symbol_3(int x, int y) {85  assert(0 < x && x < 10);86  x &= y;87  y &= x & g();88  x &= y;89  y &= x & g();90  x &= y;91  y &= x & g();92  x &= y;93  y &= x & g();94  x &= y;95  y &= x & g();96  x &= y;97  y &= x & g();98  x &= y;99  y &= x & g();100  x &= y;101  y &= x & g();102  x &= y;103  y &= x & g();104  x &= y;105  y &= x & g();106  x &= y;107  y &= x & g();108  x &= y;109  y &= x & g();110  x &= y;111  y &= x & g();112  x &= y;113  y &= x & g();114  x &= y;115  y &= x & g();116  x &= y;117  y &= x & g();118  x &= y;119  y &= x & g();120  x &= y;121  y &= x & g();122  x &= y;123  y &= x & g();124  x &= y;125  y &= x & g();126  x &= y;127  y &= x & g();128  x &= y;129  y &= x & g();130  x &= y;131  y &= x & g();132  x &= y;133  y &= x & g();134  x &= y;135  y &= x & g();136  x &= y;137  y &= x & g();138  x &= y;139  y &= x & g();140  x &= y;141  y &= x & g();142  x &= y;143  y &= x & g();144  x &= y;145  y &= x & g();146  x &= y;147  y &= x & g();148  x &= y;149  y &= x & g();150  x &= y;151  y &= x & g();152  x &= y;153  y &= x & g();154  x &= y;155  y &= x & g();156  x &= y;157  y &= x & g();158  x &= y;159  y &= x & g();160  x &= y;161  y &= x & g();162  x &= y;163  y &= x & g();164  x &= y;165  y &= x & g();166  x &= y;167  y &= x & g();168  x &= y;169  y &= x & g();170  x &= y;171  y &= x & g();172  x &= y;173  y &= x & g();174  x &= y;175  y &= x & g();176  x &= y;177  y &= x & g();178  x &= y;179  y &= x & g();180  x &= y;181  y &= x & g();182  x &= y;183  y &= x & g();184  x &= y;185  y &= x & g();186  x &= y;187  y &= x & g();188  x &= y;189  y &= x & g();190  x &= y;191  y &= x & g();192  x &= y;193  y &= x & g();194  x &= y;195  y &= x & g();196  x &= y;197  y &= x & g();198  x &= y;199  y &= x & g();200  x &= y;201  y &= x & g();202  x &= y;203  y &= x & g();204  x &= y;205  y &= x & g();206  x &= y;207  y &= x & g();208  x &= y;209  y &= x & g();210  x &= y;211  y &= x & g();212  x &= y;213  y &= x & g();214  x &= y;215  y &= x & g();216  x &= y;217  y &= x & g();218  clang_analyzer_eval(0 < x && x < 10); // expected-warning{{TRUE}}219                                        // expected-warning@-1{{FALSE}}220}221