1 // RUN: %clang_analyze_cc1 -analyzer-checker debug.ExprInspection -verify %s 2 void clang_analyzer_denote(int, const char *); 3 void clang_analyzer_express(int); 4 SymbolCast_of_float_type_aux(int * p)5void SymbolCast_of_float_type_aux(int *p) { 6 *p += 0; 7 // FIXME: Ideally, all unknown values should be symbolicated. 8 clang_analyzer_denote(*p, "$x"); // expected-warning{{Not a symbol}} 9 10 *p += 1; 11 // This should NOT be (float)$x + 1. Symbol $x was never casted to float. 12 // FIXME: Ideally, this should be $x + 1. 13 clang_analyzer_express(*p); // expected-warning{{Not a symbol}} 14 } 15 SymbolCast_of_float_type()16void SymbolCast_of_float_type() { 17 extern float x; 18 void (*f)() = SymbolCast_of_float_type_aux; 19 f(&x); 20 } 21