brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.2 KiB · 36b1215 Raw
165 lines · c
1// RUN: %check_clang_tidy %s bugprone-spuriously-wake-up-functions %t -- --2#define NULL 03 4struct Node1 {5  void *Node1;6  struct Node1 *next;7};8 9typedef struct mtx_t {10} mtx_t;11typedef struct cnd_t {12} cnd_t;13struct timespec {};14 15int cnd_wait(cnd_t *cond, mtx_t *mutex){ return 0; };16int cnd_timedwait(cnd_t *cond, mtx_t *mutex,17                  const struct timespec *time_point){ return 0; };18 19struct Node1 list_c;20static mtx_t lock;21static cnd_t condition_c;22struct timespec ts;23 24void consume_list_element(void) {25 26  if (list_c.next == NULL) {27    if (0 != cnd_wait(&condition_c, &lock)) {28      // CHECK-MESSAGES: :[[@LINE-1]]:14: warning: 'cnd_wait' should be placed inside a while statement [bugprone-spuriously-wake-up-functions]29    }30  }31  if (list_c.next == NULL)32    if (0 != cnd_wait(&condition_c, &lock))33      // CHECK-MESSAGES: :[[@LINE-1]]:14: warning: 'cnd_wait' should be placed inside a while statement [bugprone-spuriously-wake-up-functions]34      ;35  if (list_c.next == NULL && 0 != cnd_wait(&condition_c, &lock))36    // CHECK-MESSAGES: :[[@LINE-1]]:35: warning: 'cnd_wait' should be placed inside a while statement [bugprone-spuriously-wake-up-functions]37    ;38  while (list_c.next == NULL) {39    if (0 != cnd_wait(&condition_c, &lock)) {40    }41  }42  while (list_c.next == NULL)43    if (0 != cnd_wait(&condition_c, &lock)) {44    }45  while (list_c.next == NULL)46    if (0 != cnd_wait(&condition_c, &lock))47      ;48  if (list_c.next == NULL) {49    cnd_wait(&condition_c, &lock);50    // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: 'cnd_wait' should be placed inside a while statement [bugprone-spuriously-wake-up-functions]51  }52  if (list_c.next == NULL)53    cnd_wait(&condition_c, &lock);54  // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: 'cnd_wait' should be placed inside a while statement [bugprone-spuriously-wake-up-functions]55  while (list_c.next == NULL) {56    cnd_wait(&condition_c, &lock);57  }58  while (list_c.next == NULL)59    cnd_wait(&condition_c, &lock);60 61  do {62    if (0 != cnd_wait(&condition_c, &lock)) {63    }64  } while (list_c.next == NULL);65  do66    if (0 != cnd_wait(&condition_c, &lock)) {67    }68  while (list_c.next == NULL);69  do70    if (0 != cnd_wait(&condition_c, &lock))71      ;72  while (list_c.next == NULL);73  do {74    cnd_wait(&condition_c, &lock);75  } while (list_c.next == NULL);76  do77    cnd_wait(&condition_c, &lock);78  while (list_c.next == NULL);79  for (;; list_c.next == NULL) {80    if (0 != cnd_wait(&condition_c, &lock)) {81    }82  }83  for (;; list_c.next == NULL)84    if (0 != cnd_wait(&condition_c, &lock)) {85    }86  for (;; list_c.next == NULL)87    if (0 != cnd_wait(&condition_c, &lock))88      ;89  for (;; list_c.next == NULL) {90    cnd_wait(&condition_c, &lock);91  }92  for (;; list_c.next == NULL)93    cnd_wait(&condition_c, &lock);94 95  if (list_c.next == NULL) {96    if (0 != cnd_timedwait(&condition_c, &lock, &ts)) {97      // CHECK-MESSAGES: :[[@LINE-1]]:14: warning: 'cnd_timedwait' should be placed inside a while statement [bugprone-spuriously-wake-up-functions]98    }99  }100  if (list_c.next == NULL)101    if (0 != cnd_timedwait(&condition_c, &lock, &ts))102      // CHECK-MESSAGES: :[[@LINE-1]]:14: warning: 'cnd_timedwait' should be placed inside a while statement [bugprone-spuriously-wake-up-functions]103      ;104  if (list_c.next == NULL && 0 != cnd_timedwait(&condition_c, &lock, &ts))105    // CHECK-MESSAGES: :[[@LINE-1]]:35: warning: 'cnd_timedwait' should be placed inside a while statement [bugprone-spuriously-wake-up-functions]106    ;107  while (list_c.next == NULL) {108    if (0 != cnd_timedwait(&condition_c, &lock, &ts)) {109    }110  }111  while (list_c.next == NULL)112    if (0 != cnd_timedwait(&condition_c, &lock, &ts)) {113    }114  while (list_c.next == NULL)115    if (0 != cnd_timedwait(&condition_c, &lock, &ts))116      ;117  if (list_c.next == NULL) {118    cnd_timedwait(&condition_c, &lock, &ts);119    // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: 'cnd_timedwait' should be placed inside a while statement [bugprone-spuriously-wake-up-functions]120  }121  if (list_c.next == NULL)122    cnd_timedwait(&condition_c, &lock, &ts);123  // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: 'cnd_timedwait' should be placed inside a while statement [bugprone-spuriously-wake-up-functions]124  while (list_c.next == NULL) {125    cnd_timedwait(&condition_c, &lock, &ts);126  }127  while (list_c.next == NULL)128    cnd_timedwait(&condition_c, &lock, &ts);129 130  do {131    if (0 != cnd_timedwait(&condition_c, &lock, &ts)) {132    }133  } while (list_c.next == NULL);134  do135    if (0 != cnd_timedwait(&condition_c, &lock, &ts)) {136    }137  while (list_c.next == NULL);138  do139    if (0 != cnd_timedwait(&condition_c, &lock, &ts))140      ;141  while (list_c.next == NULL);142  do {143    cnd_timedwait(&condition_c, &lock, &ts);144  } while (list_c.next == NULL);145  do146    cnd_timedwait(&condition_c, &lock, &ts);147  while (list_c.next == NULL);148  for (;; list_c.next == NULL) {149    if (0 != cnd_timedwait(&condition_c, &lock, &ts)) {150    }151  }152  for (;; list_c.next == NULL)153    if (0 != cnd_timedwait(&condition_c, &lock, &ts)) {154    }155  for (;; list_c.next == NULL)156    if (0 != cnd_timedwait(&condition_c, &lock, &ts))157      ;158  for (;; list_c.next == NULL) {159    cnd_timedwait(&condition_c, &lock, &ts);160  }161  for (;; list_c.next == NULL)162    cnd_timedwait(&condition_c, &lock, &ts);163}164int main(void) { return 0; }165