forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			21 lines
		
	
	
		
			659 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			659 B
		
	
	
	
		
			C
		
	
	
	
// RUN: %clang_analyze_cc1 -analyzer-checker debug.ExprInspection -verify %s
 | 
						|
void clang_analyzer_denote(int, const char *);
 | 
						|
void clang_analyzer_express(int);
 | 
						|
 | 
						|
void SymbolCast_of_float_type_aux(int *p) {
 | 
						|
  *p += 0;
 | 
						|
  // FIXME: Ideally, all unknown values should be symbolicated.
 | 
						|
  clang_analyzer_denote(*p, "$x"); // expected-warning{{Not a symbol}}
 | 
						|
 | 
						|
  *p += 1;
 | 
						|
  // This should NOT be (float)$x + 1. Symbol $x was never casted to float.
 | 
						|
  // FIXME: Ideally, this should be $x + 1.
 | 
						|
  clang_analyzer_express(*p); // expected-warning{{Not a symbol}}
 | 
						|
}
 | 
						|
 | 
						|
void SymbolCast_of_float_type() {
 | 
						|
  extern float x;
 | 
						|
  void (*f)() = SymbolCast_of_float_type_aux;
 | 
						|
  f(&x);
 | 
						|
}
 |