| // RUN: %check_clang_tidy %s readability-braces-around-statements %t |
| |
| void do_something(const char *) {} |
| |
| bool cond(const char *) { |
| return false; |
| } |
| |
| #define EMPTY_MACRO |
| #define EMPTY_MACRO_FUN() |
| |
| void test() { |
| if (cond("if0") /*comment*/) do_something("same-line"); |
| // CHECK-MESSAGES: :[[@LINE-1]]:31: warning: statement should be inside braces |
| // CHECK-FIXES: if (cond("if0") /*comment*/) { do_something("same-line"); |
| // CHECK-FIXES: } |
| |
| if (cond("if0.1")) |
| do_something("single-line"); |
| // CHECK-MESSAGES: :[[@LINE-2]]:21: warning: statement should be inside braces |
| // CHECK-FIXES: if (cond("if0.1")) { |
| // CHECK-FIXES: } |
| |
| if (cond("if1") /*comment*/) |
| // some comment |
| do_something("if1"); |
| // CHECK-MESSAGES: :[[@LINE-3]]:31: warning: statement should be inside braces |
| // CHECK-FIXES: if (cond("if1") /*comment*/) { |
| // CHECK-FIXES: } |
| if (cond("if2")) { |
| do_something("if2"); |
| } |
| if (cond("if3")) |
| ; |
| // CHECK-MESSAGES: :[[@LINE-2]]:19: warning: statement should be inside braces |
| // CHECK-FIXES: if (cond("if3")) { |
| // CHECK-FIXES: } |
| |
| if (cond("if-else1")) |
| do_something("if-else1"); |
| // CHECK-MESSAGES: :[[@LINE-2]]:24: warning: statement should be inside braces |
| // CHECK-FIXES: if (cond("if-else1")) { |
| // CHECK-FIXES: } else { |
| else |
| do_something("if-else1 else"); |
| // CHECK-MESSAGES: :[[@LINE-2]]:7: warning: statement should be inside braces |
| // CHECK-FIXES: } |
| if (cond("if-else2")) { |
| do_something("if-else2"); |
| } else { |
| do_something("if-else2 else"); |
| } |
| |
| if (cond("if-else if-else1")) |
| do_something("if"); |
| // CHECK-MESSAGES: :[[@LINE-2]]:32: warning: statement should be inside braces |
| // CHECK-FIXES: } else if (cond("else if1")) { |
| else if (cond("else if1")) |
| do_something("else if"); |
| // CHECK-MESSAGES: :[[@LINE-2]]:29: warning: statement should be inside braces |
| else |
| do_something("else"); |
| // CHECK-MESSAGES: :[[@LINE-2]]:7: warning: statement should be inside braces |
| // CHECK-FIXES: } |
| if (cond("if-else if-else2")) { |
| do_something("if"); |
| } else if (cond("else if2")) { |
| do_something("else if"); |
| } else { |
| do_something("else"); |
| } |
| |
| for (;;) |
| do_something("for"); |
| // CHECK-MESSAGES: :[[@LINE-2]]:11: warning: statement should be inside braces |
| // CHECK-FIXES: for (;;) { |
| // CHECK-FIXES: } |
| for (;;) { |
| do_something("for"); |
| } |
| for (;;) |
| ; |
| // CHECK-MESSAGES: :[[@LINE-2]]:11: warning: statement should be inside braces |
| // CHECK-FIXES: for (;;) { |
| // CHECK-FIXES: } |
| |
| int arr[4] = {1, 2, 3, 4}; |
| for (int a : arr) |
| do_something("for-range"); |
| // CHECK-MESSAGES: :[[@LINE-2]]:20: warning: statement should be inside braces |
| // CHECK-FIXES: for (int a : arr) { |
| // CHECK-FIXES: } |
| for (int a : arr) { |
| do_something("for-range"); |
| } |
| for (int a : arr) |
| ; |
| // CHECK-MESSAGES: :[[@LINE-2]]:20: warning: statement should be inside braces |
| // CHECK-FIXES: for (int a : arr) { |
| // CHECK-FIXES: } |
| |
| while (cond("while1")) |
| do_something("while"); |
| // CHECK-MESSAGES: :[[@LINE-2]]:25: warning: statement should be inside braces |
| // CHECK-FIXES: while (cond("while1")) { |
| // CHECK-FIXES: } |
| while (cond("while2")) { |
| do_something("while"); |
| } |
| while (false) |
| ; |
| // CHECK-MESSAGES: :[[@LINE-2]]:16: warning: statement should be inside braces |
| // CHECK-FIXES: while (false) { |
| // CHECK-FIXES: } |
| |
| do |
| do_something("do1"); |
| while (cond("do1")); |
| // CHECK-MESSAGES: :[[@LINE-3]]:5: warning: statement should be inside braces |
| // CHECK-FIXES: do { |
| // CHECK-FIXES: } while (cond("do1")); |
| do { |
| do_something("do2"); |
| } while (cond("do2")); |
| |
| do |
| ; |
| while (false); |
| // CHECK-MESSAGES: :[[@LINE-3]]:5: warning: statement should be inside braces |
| // CHECK-FIXES: do { |
| // CHECK-FIXES: } while (false); |
| |
| if (cond("ifif1")) |
| // comment |
| if (cond("ifif2")) |
| // comment |
| /*comment*/ ; // comment |
| // CHECK-MESSAGES: :[[@LINE-5]]:21: warning: statement should be inside braces |
| // CHECK-MESSAGES: :[[@LINE-4]]:23: warning: statement should be inside braces |
| // CHECK-FIXES: if (cond("ifif1")) { |
| // CHECK-FIXES: if (cond("ifif2")) { |
| // CHECK-FIXES: } |
| // CHECK-FIXES-NEXT: } |
| |
| if (cond("ifif3")) |
| // comment |
| if (cond("ifif4")) { |
| // comment |
| /*comment*/; // comment |
| } |
| // CHECK-MESSAGES: :[[@LINE-6]]:21: warning: statement should be inside braces |
| // CHECK-FIXES: if (cond("ifif3")) { |
| // CHECK-FIXES: } |
| |
| if (cond("ifif5")) |
| ; /* multi-line |
| comment */ |
| // CHECK-MESSAGES: :[[@LINE-3]]:21: warning: statement should be inside braces |
| // CHECK-FIXES: if (cond("ifif5")) { |
| // CHECK-FIXES: }/* multi-line |
| |
| if (1) while (2) if (3) for (;;) do ; while(false) /**/;/**/ |
| // CHECK-MESSAGES: :[[@LINE-1]]:9: warning: statement should be inside braces |
| // CHECK-MESSAGES: :[[@LINE-2]]:19: warning: statement should be inside braces |
| // CHECK-MESSAGES: :[[@LINE-3]]:26: warning: statement should be inside braces |
| // CHECK-MESSAGES: :[[@LINE-4]]:35: warning: statement should be inside braces |
| // CHECK-MESSAGES: :[[@LINE-5]]:38: warning: statement should be inside braces |
| // CHECK-FIXES: if (1) { while (2) { if (3) { for (;;) { do { ; } while(false) /**/;/**/ |
| // CHECK-FIXES-NEXT: } |
| // CHECK-FIXES-NEXT: } |
| // CHECK-FIXES-NEXT: } |
| // CHECK-FIXES-NEXT: } |
| } |
| |
| void f(const char *p) { |
| if (!p) |
| f("\ |
| "); |
| } // end of f |
| // CHECK-MESSAGES: :[[@LINE-4]]:10: warning: statement should be inside braces |
| // CHECK-FIXES: {{^}} if (!p) {{{$}} |
| // CHECK-FIXES-NEXT: {{^}} f("\{{$}} |
| // CHECK-FIXES-NEXT: {{^}}");{{$}} |
| // CHECK-FIXES-NEXT: {{^}}}{{$}} |
| // CHECK-FIXES-NEXT: {{^}}} // end of f{{$}} |
| |
| #define M(x) x |
| |
| int test_macros(bool b) { |
| if (b) { |
| return 1; |
| } else |
| M(return 2); |
| // CHECK-MESSAGES: :[[@LINE-2]]:9: warning: statement should be inside braces |
| // CHECK-FIXES: } else { |
| // CHECK-FIXES-NEXT: M(return 2); |
| // CHECK-FIXES-NEXT: } |
| M( |
| for (;;) |
| ; |
| ); |
| // CHECK-MESSAGES: :[[@LINE-3]]:13: warning: statement should be inside braces |
| // CHECK-FIXES: {{^}} for (;;) {{{$}} |
| // CHECK-FIXES-NEXT: {{^ ;$}} |
| // CHECK-FIXES-NEXT: {{^}$}} |
| } |