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);
 | 
						|
}
 |