xref: /llvm-project/clang-tools-extra/test/clang-tidy/checkers/misc/use-internal-linkage-var.cpp (revision 6f21a7bdeeca84bcc7cf94878e17b5d7ee7b4083)
1c4f83a00SCongcong Cai // RUN: %check_clang_tidy %s misc-use-internal-linkage %t -- -- -I%S/Inputs/use-internal-linkage
2019f5257SCongcong Cai // RUN: %check_clang_tidy %s misc-use-internal-linkage %t -- \
3019f5257SCongcong Cai // RUN:   -config="{CheckOptions: {misc-use-internal-linkage.FixMode: 'UseStatic'}}"  -- -I%S/Inputs/use-internal-linkage
4c4f83a00SCongcong Cai 
5c4f83a00SCongcong Cai #include "var.h"
6c4f83a00SCongcong Cai 
7c4f83a00SCongcong Cai int global;
8c4f83a00SCongcong Cai // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: variable 'global'
9019f5257SCongcong Cai // CHECK-FIXES: static int global;
10c4f83a00SCongcong Cai 
11c4f83a00SCongcong Cai template<class T>
12c4f83a00SCongcong Cai T global_template;
13c4f83a00SCongcong Cai // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: variable 'global_template'
14019f5257SCongcong Cai // CHECK-FIXES: static T global_template;
15c4f83a00SCongcong Cai 
16*6f21a7bdSCongcong Cai int const* ptr_const_star;
17*6f21a7bdSCongcong Cai // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: variable 'ptr_const_star'
18*6f21a7bdSCongcong Cai // CHECK-FIXES: static int const* ptr_const_star;
19*6f21a7bdSCongcong Cai 
20*6f21a7bdSCongcong Cai const int* const_ptr_star;
21*6f21a7bdSCongcong Cai // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: variable 'const_ptr_star'
22*6f21a7bdSCongcong Cai // CHECK-FIXES: static const int* const_ptr_star;
23*6f21a7bdSCongcong Cai 
24*6f21a7bdSCongcong Cai const volatile int* const_volatile_ptr_star;
25*6f21a7bdSCongcong Cai // CHECK-MESSAGES: :[[@LINE-1]]:21: warning: variable 'const_volatile_ptr_star'
26*6f21a7bdSCongcong Cai // CHECK-FIXES: static const volatile int* const_volatile_ptr_star;
27*6f21a7bdSCongcong Cai 
28c4f83a00SCongcong Cai int gloabl_header;
29c4f83a00SCongcong Cai 
30c4f83a00SCongcong Cai extern int global_extern;
31c4f83a00SCongcong Cai 
32c4f83a00SCongcong Cai static int global_static;
33c4f83a00SCongcong Cai 
34c4f83a00SCongcong Cai namespace {
35c4f83a00SCongcong Cai static int global_anonymous_ns;
36c4f83a00SCongcong Cai namespace NS {
37c4f83a00SCongcong Cai static int global_anonymous_ns;
38c4f83a00SCongcong Cai }
39c4f83a00SCongcong Cai }
40c4f83a00SCongcong Cai 
41c4f83a00SCongcong Cai static void f(int para) {
42c4f83a00SCongcong Cai   int local;
43c4f83a00SCongcong Cai   static int local_static;
44c4f83a00SCongcong Cai }
45c4f83a00SCongcong Cai 
46c4f83a00SCongcong Cai struct S {
47c4f83a00SCongcong Cai   int m1;
48c4f83a00SCongcong Cai   static int m2;
49c4f83a00SCongcong Cai };
50c4f83a00SCongcong Cai int S::m2;
51c4f83a00SCongcong Cai 
52c4f83a00SCongcong Cai extern "C" {
53c4f83a00SCongcong Cai int global_in_extern_c_1;
54c4f83a00SCongcong Cai }
55c4f83a00SCongcong Cai 
56c4f83a00SCongcong Cai extern "C" int global_in_extern_c_2;
5729896db0SCarlos Galvez 
5829896db0SCarlos Galvez const int const_global = 123;
5929896db0SCarlos Galvez constexpr int constexpr_global = 123;
60