| // RUN: %check_clang_tidy %s readability-static-definition-in-anonymous-namespace %t |
| |
| namespace { |
| |
| int a = 1; |
| const int b = 1; |
| static int c = 1; |
| // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: 'c' is a static definition in anonymous namespace; static is redundant here [readability-static-definition-in-anonymous-namespace] |
| // CHECK-FIXES: {{^}}int c = 1; |
| static const int d = 1; |
| // CHECK-MESSAGES: :[[@LINE-1]]:18: warning: 'd' is a static definition in anonymous namespace |
| // CHECK-FIXES: {{^}}const int d = 1; |
| const static int e = 1; |
| // CHECK-MESSAGES: :[[@LINE-1]]:18: warning: 'e' is a static definition in anonymous namespace |
| // CHECK-FIXES: {{^}}const int e = 1; |
| |
| void f() { |
| int a = 1; |
| static int b = 1; |
| } |
| |
| static int g() { |
| // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: 'g' is a static definition in anonymous namespace |
| // CHECK-FIXES: {{^}}int g() { |
| return 1; |
| } |
| |
| #define DEFINE_STATIC static |
| // CHECK-FIXES: {{^}}#define DEFINE_STATIC static |
| DEFINE_STATIC int h = 1; |
| // CHECK-MESSAGES: :[[@LINE-1]]:19: warning: 'h' is a static definition in anonymous namespace |
| // CHECK-FIXES: {{^}}DEFINE_STATIC int h = 1; |
| |
| #define DEFINE_STATIC_VAR(x) static int x = 2 |
| // CHECK-FIXES: {{^}}#define DEFINE_STATIC_VAR(x) static int x = 2 |
| DEFINE_STATIC_VAR(i); |
| // CHECK-FIXES: {{^}}DEFINE_STATIC_VAR(i); |
| |
| } // namespace |
| |
| namespace N { |
| |
| int a = 1; |
| const int b = 1; |
| static int c = 1; |
| static const int d = 1; |
| const static int e = 1; |
| |
| } // namespace N |