1*89a1d03eSRichard // RUN: %check_clang_tidy -std=c++17-or-later %s bugprone-suspicious-semicolon %t 2*89a1d03eSRichard fail()3*89a1d03eSRichardvoid fail() 4*89a1d03eSRichard { 5*89a1d03eSRichard int x = 0; 6*89a1d03eSRichard if(x > 5); (void)x; 7*89a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: potentially unintended semicolon [bugprone-suspicious-semicolon] 8*89a1d03eSRichard // CHECK-FIXES: if(x > 5) (void)x; 9*89a1d03eSRichard } 10*89a1d03eSRichard 11*89a1d03eSRichard template <int X> foo(int a)12*89a1d03eSRichardint foo(int a) { 13*89a1d03eSRichard if constexpr(X > 0) { 14*89a1d03eSRichard return a; 15*89a1d03eSRichard } 16*89a1d03eSRichard return a + 1; 17*89a1d03eSRichard } 18*89a1d03eSRichard 19*89a1d03eSRichard template <int X> foo2(int a)20*89a1d03eSRichardint foo2(int a) { 21*89a1d03eSRichard // FIXME: diagnose the case below. See https://reviews.llvm.org/D46234 22*89a1d03eSRichard // for details. 23*89a1d03eSRichard if constexpr(X > 0); 24*89a1d03eSRichard return a; 25*89a1d03eSRichard return a + 1; 26*89a1d03eSRichard } 27*89a1d03eSRichard main(void)28*89a1d03eSRichardint main(void) { 29*89a1d03eSRichard foo2<0>(1); 30*89a1d03eSRichard return foo<0>(1); 31*89a1d03eSRichard } 32