1*89a1d03eSRichard // RUN: %check_clang_tidy %s bugprone-suspicious-semicolon %t 2*89a1d03eSRichard 3*89a1d03eSRichard int x = 5; 4*89a1d03eSRichard 5*89a1d03eSRichard void nop(); 6*89a1d03eSRichard correct1()7*89a1d03eSRichardvoid correct1() 8*89a1d03eSRichard { 9*89a1d03eSRichard if(x < 5) nop(); 10*89a1d03eSRichard } 11*89a1d03eSRichard correct2()12*89a1d03eSRichardvoid correct2() 13*89a1d03eSRichard { 14*89a1d03eSRichard if(x == 5) 15*89a1d03eSRichard nop(); 16*89a1d03eSRichard } 17*89a1d03eSRichard correct3()18*89a1d03eSRichardvoid correct3() 19*89a1d03eSRichard { 20*89a1d03eSRichard if(x > 5) 21*89a1d03eSRichard { 22*89a1d03eSRichard nop(); 23*89a1d03eSRichard } 24*89a1d03eSRichard } 25*89a1d03eSRichard fail1()26*89a1d03eSRichardvoid fail1() 27*89a1d03eSRichard { 28*89a1d03eSRichard if(x > 5); nop(); 29*89a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: potentially unintended semicolon [bugprone-suspicious-semicolon] 30*89a1d03eSRichard // CHECK-FIXES: if(x > 5) nop(); 31*89a1d03eSRichard } 32*89a1d03eSRichard fail2()33*89a1d03eSRichardvoid fail2() 34*89a1d03eSRichard { 35*89a1d03eSRichard if(x == 5); 36*89a1d03eSRichard nop(); 37*89a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-2]]:12: warning: potentially unintended semicolon [bugprone-suspicious-semicolon] 38*89a1d03eSRichard // CHECK-FIXES: if(x == 5){{$}} 39*89a1d03eSRichard } 40*89a1d03eSRichard fail3()41*89a1d03eSRichardvoid fail3() 42*89a1d03eSRichard { 43*89a1d03eSRichard if(x < 5); 44*89a1d03eSRichard { 45*89a1d03eSRichard nop(); 46*89a1d03eSRichard } 47*89a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-4]]:11: warning: potentially unintended semicolon 48*89a1d03eSRichard // CHECK-FIXES: if(x < 5){{$}} 49*89a1d03eSRichard } 50*89a1d03eSRichard correct4()51*89a1d03eSRichardvoid correct4() 52*89a1d03eSRichard { 53*89a1d03eSRichard while(x % 5 == 1); 54*89a1d03eSRichard nop(); 55*89a1d03eSRichard } 56*89a1d03eSRichard correct5()57*89a1d03eSRichardvoid correct5() 58*89a1d03eSRichard { 59*89a1d03eSRichard for(int i = 0; i < x; ++i) 60*89a1d03eSRichard ; 61*89a1d03eSRichard } 62*89a1d03eSRichard fail4()63*89a1d03eSRichardvoid fail4() 64*89a1d03eSRichard { 65*89a1d03eSRichard for(int i = 0; i < x; ++i); 66*89a1d03eSRichard nop(); 67*89a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-2]]:28: warning: potentially unintended semicolon 68*89a1d03eSRichard // CHECK-FIXES: for(int i = 0; i < x; ++i){{$}} 69*89a1d03eSRichard } 70*89a1d03eSRichard fail5()71*89a1d03eSRichardvoid fail5() 72*89a1d03eSRichard { 73*89a1d03eSRichard if(x % 5 == 1); 74*89a1d03eSRichard nop(); 75*89a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-2]]:16: warning: potentially unintended semicolon 76*89a1d03eSRichard // CHECK-FIXES: if(x % 5 == 1){{$}} 77*89a1d03eSRichard } 78*89a1d03eSRichard fail6()79*89a1d03eSRichardvoid fail6() { 80*89a1d03eSRichard int a = 0; 81*89a1d03eSRichard if (a != 0) { 82*89a1d03eSRichard } else if (a != 1); 83*89a1d03eSRichard a = 2; 84*89a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-2]]:21: warning: potentially unintended semicolon 85*89a1d03eSRichard // CHECK-FIXES: } else if (a != 1){{$}} 86*89a1d03eSRichard } 87*89a1d03eSRichard fail7()88*89a1d03eSRichardvoid fail7() { 89*89a1d03eSRichard if (true) 90*89a1d03eSRichard ; 91*89a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: potentially unintended semicolon 92*89a1d03eSRichard } 93*89a1d03eSRichard correct6()94*89a1d03eSRichardvoid correct6() 95*89a1d03eSRichard { 96*89a1d03eSRichard do; while(false); 97*89a1d03eSRichard } 98*89a1d03eSRichard correct7()99*89a1d03eSRichardint correct7() 100*89a1d03eSRichard { 101*89a1d03eSRichard int t_num = 0; 102*89a1d03eSRichard char c = 'b'; 103*89a1d03eSRichard char *s = "a"; 104*89a1d03eSRichard if (s == "(" || s != "'" || c == '"') { 105*89a1d03eSRichard t_num += 3; 106*89a1d03eSRichard return (c == ')' && c == '\''); 107*89a1d03eSRichard } 108*89a1d03eSRichard 109*89a1d03eSRichard return 0; 110*89a1d03eSRichard } 111*89a1d03eSRichard correct8()112*89a1d03eSRichardvoid correct8() { 113*89a1d03eSRichard if (true) 114*89a1d03eSRichard ; 115*89a1d03eSRichard else { 116*89a1d03eSRichard } 117*89a1d03eSRichard } 118