forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			19 lines
		
	
	
		
			399 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			19 lines
		
	
	
		
			399 B
		
	
	
	
		
			C
		
	
	
	
| // RUN: %clang_analyze_cc1 -analyzer-checker=alpha.fuchsia.Lock -verify %s
 | |
| // expected-no-diagnostics
 | |
| typedef int spin_lock_t;
 | |
| 
 | |
| void spin_lock(spin_lock_t *lock);
 | |
| int getCond();
 | |
| int spin_trylock(spin_lock_t *lock) {
 | |
|     if (getCond())
 | |
|         return 0;
 | |
|     return -1;
 | |
| }
 | |
| void spin_unlock(spin_lock_t *lock);
 | |
| 
 | |
| spin_lock_t mtx;
 | |
| void no_crash() {
 | |
|   if (spin_trylock(&mtx) == 0)
 | |
|     spin_unlock(&mtx);
 | |
| }
 |