forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			85 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
| // RUN: %clang_analyze_cc1 -analyzer-checker=debug.ExprInspection -verify -std=c++98 -Wno-deprecated %s
 | |
| // RUN: %clang_analyze_cc1 -analyzer-checker=debug.ExprInspection -verify -std=c++11 -Wno-deprecated %s
 | |
| // RUN: %clang_analyze_cc1 -analyzer-checker=debug.ExprInspection -verify -std=c++14 -Wno-deprecated %s
 | |
| 
 | |
| extern void clang_analyzer_eval(bool);
 | |
| 
 | |
| void test_bool_value() {
 | |
|   {
 | |
|     bool b = true;
 | |
|     clang_analyzer_eval(b == 1); // expected-warning{{TRUE}}
 | |
|   }
 | |
| 
 | |
|   {
 | |
|     bool b = false;
 | |
|     clang_analyzer_eval(b == 0); // expected-warning{{TRUE}}
 | |
|   }
 | |
| 
 | |
|   {
 | |
|     bool b = -10;
 | |
|     clang_analyzer_eval(b == 1); // expected-warning{{TRUE}}
 | |
|   }
 | |
| 
 | |
|   {
 | |
|     bool b = 10;
 | |
|     clang_analyzer_eval(b == 1); // expected-warning{{TRUE}}
 | |
|   }
 | |
| 
 | |
|   {
 | |
|     bool b = 10;
 | |
|     b++;
 | |
|     clang_analyzer_eval(b == 1); // expected-warning{{TRUE}}
 | |
|   }
 | |
| 
 | |
|   {
 | |
|     bool b = 0;
 | |
|     b++;
 | |
|     clang_analyzer_eval(b == 1); // expected-warning{{TRUE}}
 | |
|   }
 | |
| }
 | |
| 
 | |
| void test_bool_increment() {
 | |
|   {
 | |
|     bool b = true;
 | |
|     b++;
 | |
|     clang_analyzer_eval(b); // expected-warning{{TRUE}}
 | |
|   }
 | |
| 
 | |
|   {
 | |
|     bool b = false;
 | |
|     b++;
 | |
|     clang_analyzer_eval(b); // expected-warning{{TRUE}}
 | |
|   }
 | |
| 
 | |
|   {
 | |
|     bool b = true;
 | |
|     ++b;
 | |
|     clang_analyzer_eval(b); // expected-warning{{TRUE}}
 | |
|   }
 | |
| 
 | |
|   {
 | |
|     bool b = false;
 | |
|     ++b;
 | |
|     clang_analyzer_eval(b); // expected-warning{{TRUE}}
 | |
|   }
 | |
| 
 | |
|   {
 | |
|     bool b = 0;
 | |
|     ++b;
 | |
|     clang_analyzer_eval(b); // expected-warning{{TRUE}}
 | |
|   }
 | |
| 
 | |
|   {
 | |
|     bool b = 10;
 | |
|     ++b;
 | |
|     ++b;
 | |
|     clang_analyzer_eval(b); // expected-warning{{TRUE}}
 | |
|   }
 | |
| 
 | |
|   {
 | |
|     bool b = -10;
 | |
|     ++b;
 | |
|     clang_analyzer_eval(b); // expected-warning{{TRUE}}
 | |
|   }
 | |
| }
 |