forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			32 lines
		
	
	
		
			858 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			858 B
		
	
	
	
		
			C++
		
	
	
	
| // RUN: %clang_cc1 -analyze -analyzer-checker=debug.AnalysisOrder -analyzer-config debug.AnalysisOrder:Bind=true -analyzer-config debug.AnalysisOrder:RegionChanges=true %s 2>&1 | FileCheck %s
 | |
| 
 | |
| struct Super {
 | |
|   virtual void m();
 | |
| };
 | |
| struct Sub : Super {
 | |
|   virtual void m() {}
 | |
| };
 | |
| 
 | |
| void testTemporaries() {
 | |
|   // This triggers RegionChanges once for zero-initialization of the structure.
 | |
|   Sub().m();
 | |
| }
 | |
| 
 | |
| void seeIfCheckBindWorks() {
 | |
|   // This should trigger checkBind. The rest of the code shouldn't.
 | |
|   // This also triggers checkRegionChanges after that.
 | |
|   // Note that this function is analyzed first, so the messages would be on top.
 | |
|   int x = 1;
 | |
| }
 | |
| 
 | |
| // seeIfCheckBindWorks():
 | |
| // CHECK: Bind
 | |
| // CHECK-NEXT: RegionChanges
 | |
| 
 | |
| // testTemporaries():
 | |
| // CHECK-NEXT: RegionChanges
 | |
| 
 | |
| // Make sure there's no further output.
 | |
| // CHECK-NOT: Bind
 | |
| // CHECK-NOT: RegionChanges
 |