forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			29 lines
		
	
	
		
			713 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			713 B
		
	
	
	
		
			C
		
	
	
	
| // RUN: %clang_cc1 -triple i386-apple-darwin10 -analyze -analyzer-checker=core.builtin,debug.ExprInspection -verify %s
 | |
| 
 | |
| void clang_analyzer_eval(int);
 | |
| 
 | |
| void initbug() {
 | |
|   const union { float a; } u = {};
 | |
|   (void)u.a; // no-crash
 | |
| }
 | |
| 
 | |
| int const parr[2] = {1};
 | |
| void constarr() {
 | |
|   int i = 2;
 | |
|   clang_analyzer_eval(parr[i]); // expected-warning{{UNDEFINED}}
 | |
|   i = 1;
 | |
|   clang_analyzer_eval(parr[i] == 0); // expected-warning{{TRUE}}
 | |
|   i = -1;
 | |
|   clang_analyzer_eval(parr[i]); // expected-warning{{UNDEFINED}}
 | |
| }
 | |
| 
 | |
| struct SM {
 | |
|   int a;
 | |
|   int b;
 | |
| };
 | |
| const struct SM sm = {.a = 1};
 | |
| void multinit() {
 | |
|   clang_analyzer_eval(sm.a == 1); // expected-warning{{TRUE}}
 | |
|   clang_analyzer_eval(sm.b == 0); // expected-warning{{TRUE}}
 | |
| }
 |