2015-08-21 01:58:07 +08:00
|
|
|
// RUN: %python %S/check_clang_tidy.py %s readability-braces-around-statements %t
|
2014-10-03 03:09:56 +08:00
|
|
|
|
|
|
|
void do_something(const char *) {}
|
|
|
|
|
|
|
|
bool cond(const char *) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
#define EMPTY_MACRO
|
|
|
|
#define EMPTY_MACRO_FUN()
|
|
|
|
|
|
|
|
void test() {
|
2014-10-13 20:46:22 +08:00
|
|
|
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: }
|
|
|
|
|
2014-10-03 03:09:56 +08:00
|
|
|
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: }
|
|
|
|
}
|
2015-09-10 01:06:09 +08:00
|
|
|
|
|
|
|
#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: }
|
|
|
|
}
|