brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 1fcb066 Raw
62 lines · cpp
1// RUN: %clang_analyze_cc1 -verify %s -analyzer-config eagerly-assume=false \2// RUN:   -analyzer-checker=core,debug.ExprInspection3 4void clang_analyzer_eval(bool);5 6void element_constant() {7  char arr[10];8  clang_analyzer_eval(arr + 1 > arr); // expected-warning{{TRUE}}9}10 11void element_known() {12  char arr[10];13  int off = 1;14  clang_analyzer_eval(arr + off > arr); // expected-warning{{TRUE}}15}16 17void element_constrained(int off) {18  char arr[10];19  if (off == 1) {20    clang_analyzer_eval(arr + off > arr); // expected-warning{{TRUE}}21  }22}23 24void element_unknown(int off) {25  char arr[10];26  clang_analyzer_eval(arr + off > arr); // expected-warning{{UNKNOWN}}27}28 29void element_complex(int off) {30  char arr[10];31  int comp = off * 2;32  if (off == 1) {33    clang_analyzer_eval(arr + comp); // expected-warning{{TRUE}}34  }35}36 37void base_constant(int *arr) {38  clang_analyzer_eval(arr + 1 > arr); // expected-warning{{TRUE}}39}40 41void base_known(int *arr) {42  int off = 1;43  clang_analyzer_eval(arr + off > arr); // expected-warning{{TRUE}}44}45 46void base_constrained(int *arr, int off) {47  if (off == 1) {48    clang_analyzer_eval(arr + off > arr); // expected-warning{{TRUE}}49  }50}51 52void base_unknown(int *arr, int off) {53  clang_analyzer_eval(arr + off > arr); // expected-warning{{UNKNOWN}}54}55 56void base_complex(int *arr, int off) {57  int comp = off * 2;58  if (off == 1) {59    clang_analyzer_eval(arr + comp > arr); // expected-warning{{TRUE}}60  }61}62