// RUN: %check_clang_tidy %s bugprone-terminating-continue %t void f() { do { continue; // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: 'continue' in loop with false condition is equivalent to 'break' [bugprone-terminating-continue] // CHECK-FIXES: break; } while(false); do { continue; // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: 'continue' in loop with false condition is equivalent to 'break' [bugprone-terminating-continue] // CHECK-FIXES: break; } while(0); do { continue; // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: 'continue' in loop with false condition is equivalent to 'break' [bugprone-terminating-continue] // CHECK-FIXES: break; } while(nullptr); do { continue; // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: 'continue' in loop with false condition is equivalent to 'break' [bugprone-terminating-continue] // CHECK-FIXES: break; } while(__null); do { int x = 1; if (x > 0) continue; // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: 'continue' in loop with false condition is equivalent to 'break' [bugprone-terminating-continue] // CHECK-FIXES: if (x > 0) break; } while (false); } void g() { do { do { continue; int x = 1; } while (1 == 1); } while (false); do { for (int i = 0; i < 1; ++i) { continue; int x = 1; } } while (false); do { while (true) { continue; int x = 1; } } while (false); int v[] = {1,2,3,34}; do { for (int n : v) { if (n>2) continue; } } while (false); }