// RUN: %check_clang_tidy %s bugprone-suspicious-semicolon %t int x = 5; void nop(); void correct1() { if(x < 5) nop(); } void correct2() { if(x == 5) nop(); } void correct3() { if(x > 5) { nop(); } } void fail1() { if(x > 5); nop(); // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: potentially unintended semicolon [bugprone-suspicious-semicolon] // CHECK-FIXES: if(x > 5) nop(); } void fail2() { if(x == 5); nop(); // CHECK-MESSAGES: :[[@LINE-2]]:12: warning: potentially unintended semicolon [bugprone-suspicious-semicolon] // CHECK-FIXES: if(x == 5){{$}} } void fail3() { if(x < 5); { nop(); } // CHECK-MESSAGES: :[[@LINE-4]]:11: warning: potentially unintended semicolon // CHECK-FIXES: if(x < 5){{$}} } void correct4() { while(x % 5 == 1); nop(); } void correct5() { for(int i = 0; i < x; ++i) ; } void fail4() { for(int i = 0; i < x; ++i); nop(); // CHECK-MESSAGES: :[[@LINE-2]]:28: warning: potentially unintended semicolon // CHECK-FIXES: for(int i = 0; i < x; ++i){{$}} } void fail5() { if(x % 5 == 1); nop(); // CHECK-MESSAGES: :[[@LINE-2]]:16: warning: potentially unintended semicolon // CHECK-FIXES: if(x % 5 == 1){{$}} } void fail6() { int a = 0; if (a != 0) { } else if (a != 1); a = 2; // CHECK-MESSAGES: :[[@LINE-2]]:21: warning: potentially unintended semicolon // CHECK-FIXES: } else if (a != 1){{$}} } void fail7() { if (true) ; // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: potentially unintended semicolon } void correct6() { do; while(false); } int correct7() { int t_num = 0; char c = 'b'; char *s = "a"; if (s == "(" || s != "'" || c == '"') { t_num += 3; return (c == ')' && c == '\''); } return 0; } void correct8() { if (true) ; else { } }