xref: /llvm-project/clang-tools-extra/test/clang-tidy/checkers/misc/use-anonymous-namespace.cpp (revision 35d9f873e3f21846de1b8f07271feedbbe8518ed)
1*35d9f873SCarlos Galvez // RUN: %check_clang_tidy %s misc-use-anonymous-namespace %t -- -header-filter=.* -- -I%S/Inputs
2*35d9f873SCarlos Galvez #include "use-anonymous-namespace.h"
365d6d67fSCarlos Galvez 
465d6d67fSCarlos Galvez static void f1();
565d6d67fSCarlos Galvez // CHECK-MESSAGES: :[[@LINE-1]]:13: warning: function 'f1' declared 'static', move to anonymous namespace instead [misc-use-anonymous-namespace]
665d6d67fSCarlos Galvez static int v1;
765d6d67fSCarlos Galvez // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: variable 'v1' declared 'static', move to anonymous namespace instead
865d6d67fSCarlos Galvez 
965d6d67fSCarlos Galvez namespace a {
1065d6d67fSCarlos Galvez   static void f3();
1165d6d67fSCarlos Galvez   // CHECK-MESSAGES: :[[@LINE-1]]:15: warning: function 'f3' declared 'static', move to anonymous namespace instead
1265d6d67fSCarlos Galvez   static int v3;
1365d6d67fSCarlos Galvez   // CHECK-MESSAGES: :[[@LINE-1]]:14: warning: variable 'v3' declared 'static', move to anonymous namespace instead
1465d6d67fSCarlos Galvez }
1565d6d67fSCarlos Galvez 
1665d6d67fSCarlos Galvez // OK
1765d6d67fSCarlos Galvez void f5();
1865d6d67fSCarlos Galvez int v5;
1965d6d67fSCarlos Galvez 
2065d6d67fSCarlos Galvez // OK
2165d6d67fSCarlos Galvez namespace {
2265d6d67fSCarlos Galvez   void f6();
2365d6d67fSCarlos Galvez   int v6;
2465d6d67fSCarlos Galvez }
2565d6d67fSCarlos Galvez 
2665d6d67fSCarlos Galvez // OK
2765d6d67fSCarlos Galvez namespace a {
2865d6d67fSCarlos Galvez namespace {
2965d6d67fSCarlos Galvez   void f7();
3065d6d67fSCarlos Galvez   int v7;
3165d6d67fSCarlos Galvez }
3265d6d67fSCarlos Galvez }
3365d6d67fSCarlos Galvez 
3465d6d67fSCarlos Galvez // OK
3565d6d67fSCarlos Galvez struct Foo {
3665d6d67fSCarlos Galvez   static void f();
3765d6d67fSCarlos Galvez   static int x;
3865d6d67fSCarlos Galvez };
3965d6d67fSCarlos Galvez 
4065d6d67fSCarlos Galvez // OK
foo()4165d6d67fSCarlos Galvez void foo()
4265d6d67fSCarlos Galvez {
4365d6d67fSCarlos Galvez   static int x;
4465d6d67fSCarlos Galvez }
45*35d9f873SCarlos Galvez 
46*35d9f873SCarlos Galvez // OK
47*35d9f873SCarlos Galvez static const int v8{123};
48*35d9f873SCarlos Galvez static constexpr int v9{123};
49