1 // RUN: %check_clang_tidy %s readability-braces-around-statements %t -- -- -std=c++17 2 3 void handle(bool); 4 5 template <bool branch> shouldFail()6void shouldFail() { 7 if constexpr (branch) 8 // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: statement should be inside braces [readability-braces-around-statements] 9 handle(true); 10 else 11 // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: statement should be inside braces [readability-braces-around-statements] 12 handle(false); 13 } 14 15 template <bool branch> shouldPass()16void shouldPass() { 17 if constexpr (branch) { 18 handle(true); 19 } else { 20 handle(false); 21 } 22 } 23 shouldFailNonTemplate()24void shouldFailNonTemplate() { 25 constexpr bool branch = false; 26 if constexpr (branch) 27 // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: statement should be inside braces [readability-braces-around-statements] 28 handle(true); 29 else 30 // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: statement should be inside braces [readability-braces-around-statements] 31 handle(false); 32 } 33 shouldPass()34void shouldPass() { 35 constexpr bool branch = false; 36 if constexpr (branch) { 37 handle(true); 38 } else { 39 handle(false); 40 } 41 } 42 run()43void run() { 44 shouldFail<true>(); 45 shouldFail<false>(); 46 shouldPass<true>(); 47 shouldPass<false>(); 48 } 49