// RUN: %clang_analyze_cc1 -w -analyzer-checker=core -verify %s | |
// expected-no-diagnostics | |
struct toggle { | |
bool value; | |
}; | |
toggle global_toggle; | |
toggle get_global_toggle() { return global_toggle; } | |
int oob_access(); | |
bool compare(toggle one, bool other) { | |
if (one.value != other) | |
return true; | |
if (one.value) | |
oob_access(); | |
return true; | |
} | |
bool coin(); | |
void bar() { | |
bool left = coin(); | |
bool right = coin(); | |
for (;;) | |
compare(get_global_toggle(), left) && compare(get_global_toggle(), right); | |
} |