83 lines · cpp
1// RUN: %check_clang_tidy %s bugprone-terminating-continue %t2 3void f() {4 do {5 continue;6 // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: 'continue' in loop with false condition is equivalent to 'break' [bugprone-terminating-continue]7 // CHECK-FIXES: break;8 } while(false);9 10 do {11 continue;12 // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: 'continue' in loop with false condition is equivalent to 'break' [bugprone-terminating-continue]13 // CHECK-FIXES: break;14 } while(0);15 16 do {17 continue;18 // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: 'continue' in loop with false condition is equivalent to 'break' [bugprone-terminating-continue]19 // CHECK-FIXES: break;20 } while(nullptr);21 22 do {23 continue;24 // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: 'continue' in loop with false condition is equivalent to 'break' [bugprone-terminating-continue]25 // CHECK-FIXES: break;26 } while(__null);27 28 29 do {30 int x = 1;31 if (x > 0) continue;32 // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: 'continue' in loop with false condition is equivalent to 'break' [bugprone-terminating-continue]33 // CHECK-FIXES: if (x > 0) break;34 } while (false);35 36 switch (2) {37 case 2:38 do {39 continue; // LoopInSwitch40 // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: 'continue' in loop with false condition is equivalent to 'break' [bugprone-terminating-continue]41 // CHECK-FIXES: break; // LoopInSwitch42 } while (0);43 }44}45 46void g() {47 do {48 do {49 continue;50 int x = 1;51 } while (1 == 1);52 } while (false);53 54 do {55 for (int i = 0; i < 1; ++i) {56 continue;57 int x = 1;58 }59 } while (false);60 61 do {62 while (true) {63 continue;64 int x = 1;65 }66 } while (false);67 68 int v[] = {1,2,3,34};69 do {70 for (int n : v) {71 if (n>2) continue;72 }73 } while (false);74 75 do {76 switch (2) {77 case 1:78 case 2:79 continue;80 }81 } while (false);82}83