Clang Project

clang_source_code/test/Analysis/loop-block-counts.c
1// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection -verify %s
2
3void clang_analyzer_eval(int);
4
5void callee(void **p) {
6  int x;
7  *p = &x;
8}
9
10void loop() {
11  void *arr[2];
12  for (int i = 0; i < 2; ++i)
13    callee(&arr[i]);
14  // FIXME: Should be UNKNOWN.
15  clang_analyzer_eval(arr[0] == arr[1]); // expected-warning{{TRUE}}
16}
17
18void loopWithCall() {
19  void *arr[2];
20  for (int i = 0; i < 2; ++i) {
21    int x;
22    arr[i] = &x;
23  }
24  // FIXME: Should be UNKNOWN.
25  clang_analyzer_eval(arr[0] == arr[1]); // expected-warning{{TRUE}}
26}
27