brintos

brintos / llvm-project-archived public Read only

0
0
Text · 522 B · 3254355 Raw
31 lines · cpp
1// RUN: %clang_analyze_cc1 -w -analyzer-checker=core -verify %s2 3// expected-no-diagnostics4 5struct toggle {6  bool value;7};8 9toggle global_toggle;10toggle get_global_toggle() { return global_toggle; }11 12int oob_access();13 14bool compare(toggle one, bool other) {15  if (one.value != other)16    return true;17 18  if (one.value)19    oob_access();20  return true;21}22 23bool coin();24 25void bar() {26  bool left = coin();27  bool right = coin();28  for (;;)29    compare(get_global_toggle(), left) && compare(get_global_toggle(), right);30}31