// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection -verify %s void clang_analyzer_eval(int); void callee(void **p) { int x; *p = &x; // expected-warning@-1 {{Address of stack memory associated with local \ variable 'x' is still referred to by the stack variable 'arr' upon \ returning to the caller}} } void loop(void) { void *arr[2]; for (int i = 0; i < 2; ++i) callee(&arr[i]); // FIXME: Should be UNKNOWN. clang_analyzer_eval(arr[0] == arr[1]); // expected-warning{{FALSE}} } void loopWithCall(void) { void *arr[2]; for (int i = 0; i < 2; ++i) { int x; arr[i] = &x; } // FIXME: Should be UNKNOWN. clang_analyzer_eval(arr[0] == arr[1]); // expected-warning{{TRUE}} }