1 | // RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection -verify %s |
2 | |
3 | void clang_analyzer_eval(int); |
4 | |
5 | void callee(void **p) { |
6 | int x; |
7 | *p = &x; |
8 | } |
9 | |
10 | void 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 | |
18 | void 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 | |