Compiler projects using llvm
// 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(void);
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(void) {
  if (spin_trylock(&mtx) == 0)
    spin_unlock(&mtx);
}