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 "func.h" 6c4f83a00SCongcong Cai 7c4f83a00SCongcong Cai void func() {} 8c4f83a00SCongcong Cai // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: function 'func' 9019f5257SCongcong Cai // CHECK-FIXES: static void func() {} 10c4f83a00SCongcong Cai 11c4f83a00SCongcong Cai template<class T> 12c4f83a00SCongcong Cai void func_template() {} 13c4f83a00SCongcong Cai // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: function 'func_template' 14019f5257SCongcong Cai // CHECK-FIXES: static void func_template() {} 15c4f83a00SCongcong Cai 16c4f83a00SCongcong Cai void func_cpp_inc(); 17c4f83a00SCongcong Cai // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: function 'func_cpp_inc' 18019f5257SCongcong Cai // CHECK-FIXES: static void func_cpp_inc(); 19c4f83a00SCongcong Cai 20*6f21a7bdSCongcong Cai int* func_cpp_inc_return_ptr(); 21*6f21a7bdSCongcong Cai // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: function 'func_cpp_inc_return_ptr' 22*6f21a7bdSCongcong Cai // CHECK-FIXES: static int* func_cpp_inc_return_ptr(); 23*6f21a7bdSCongcong Cai 24*6f21a7bdSCongcong Cai const int* func_cpp_inc_return_const_ptr(); 25*6f21a7bdSCongcong Cai // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: function 'func_cpp_inc_return_const_ptr' 26*6f21a7bdSCongcong Cai // CHECK-FIXES: static const int* func_cpp_inc_return_const_ptr(); 27*6f21a7bdSCongcong Cai 28*6f21a7bdSCongcong Cai int const* func_cpp_inc_return_ptr_const(); 29*6f21a7bdSCongcong Cai // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: function 'func_cpp_inc_return_ptr_const' 30*6f21a7bdSCongcong Cai // CHECK-FIXES: static int const* func_cpp_inc_return_ptr_const(); 31*6f21a7bdSCongcong Cai 32*6f21a7bdSCongcong Cai int * const func_cpp_inc_return_const(); 33*6f21a7bdSCongcong Cai // CHECK-MESSAGES: :[[@LINE-1]]:13: warning: function 'func_cpp_inc_return_const' 34*6f21a7bdSCongcong Cai // CHECK-FIXES: static int * const func_cpp_inc_return_const(); 35*6f21a7bdSCongcong Cai 36*6f21a7bdSCongcong Cai volatile const int* func_cpp_inc_return_volatile_const_ptr(); 37*6f21a7bdSCongcong Cai // CHECK-MESSAGES: :[[@LINE-1]]:21: warning: function 'func_cpp_inc_return_volatile_const_ptr' 38*6f21a7bdSCongcong Cai // CHECK-FIXES: static volatile const int* func_cpp_inc_return_volatile_const_ptr(); 39*6f21a7bdSCongcong Cai 40*6f21a7bdSCongcong Cai [[nodiscard]] void func_nodiscard(); 41*6f21a7bdSCongcong Cai // CHECK-MESSAGES: :[[@LINE-1]]:20: warning: function 'func_nodiscard' 42*6f21a7bdSCongcong Cai // CHECK-FIXES: {{\[\[nodiscard\]\]}} static void func_nodiscard(); 43*6f21a7bdSCongcong Cai 44*6f21a7bdSCongcong Cai #define NDS [[nodiscard]] 45*6f21a7bdSCongcong Cai #define NNDS 46*6f21a7bdSCongcong Cai 47*6f21a7bdSCongcong Cai NDS void func_nds(); 48*6f21a7bdSCongcong Cai // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: function 'func_nds' 49*6f21a7bdSCongcong Cai // CHECK-FIXES: NDS static void func_nds(); 50*6f21a7bdSCongcong Cai 51*6f21a7bdSCongcong Cai NNDS void func_nnds(); 52*6f21a7bdSCongcong Cai // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: function 'func_nnds' 53*6f21a7bdSCongcong Cai // CHECK-FIXES: NNDS static void func_nnds(); 54*6f21a7bdSCongcong Cai 55c4f83a00SCongcong Cai #include "func_cpp.inc" 56c4f83a00SCongcong Cai 57c4f83a00SCongcong Cai void func_h_inc(); 58c4f83a00SCongcong Cai 59c4f83a00SCongcong Cai struct S { 60c4f83a00SCongcong Cai void method(); 61c4f83a00SCongcong Cai }; 62c4f83a00SCongcong Cai void S::method() {} 63c4f83a00SCongcong Cai 64c4f83a00SCongcong Cai void func_header(); 65c4f83a00SCongcong Cai extern void func_extern(); 66c4f83a00SCongcong Cai static void func_static(); 67c4f83a00SCongcong Cai namespace { 68c4f83a00SCongcong Cai void func_anonymous_ns(); 69c4f83a00SCongcong Cai } // namespace 70c4f83a00SCongcong Cai 71c4f83a00SCongcong Cai int main(int argc, const char*argv[]) {} 72c4f83a00SCongcong Cai 73c4f83a00SCongcong Cai extern "C" { 74c4f83a00SCongcong Cai void func_extern_c_1() {} 75c4f83a00SCongcong Cai } 76c4f83a00SCongcong Cai 77c4f83a00SCongcong Cai extern "C" void func_extern_c_2() {} 78