forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			23 lines
		
	
	
		
			614 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			614 B
		
	
	
	
		
			C++
		
	
	
	
| // RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection -analyzer-config c++-temp-dtor-inlining=false -verify -analyzer-config eagerly-assume=false %s
 | |
| // RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection -analyzer-config c++-temp-dtor-inlining=true -DINLINE -verify -analyzer-config eagerly-assume=false %s
 | |
| 
 | |
| void clang_analyzer_eval(bool);
 | |
| 
 | |
| struct S {
 | |
|   int &x;
 | |
| 
 | |
|   S(int &x) : x(x) { ++x; }
 | |
|   ~S() { --x; }
 | |
| };
 | |
| 
 | |
| void foo() {
 | |
|   int x = 0;
 | |
|   S(x).x += 1;
 | |
|   clang_analyzer_eval(x == 1);
 | |
| #ifdef INLINE
 | |
|   // expected-warning@-2{{TRUE}}
 | |
| #else
 | |
|   // expected-warning@-4{{UNKNOWN}}
 | |
| #endif
 | |
| }
 |