xref: /llvm-project/clang-tools-extra/test/clang-tidy/checkers/misc/definitions-in-headers-1z.hpp (revision 89a1d03e2b379e325daa5249411e414bbd995b5e)
1*89a1d03eSRichard // RUN: %check_clang_tidy -std=c++17-or-later %s misc-definitions-in-headers %t
2*89a1d03eSRichard 
3*89a1d03eSRichard class CE {
4*89a1d03eSRichard   constexpr static int i = 5; // OK: inline variable definition.
5*89a1d03eSRichard };
6*89a1d03eSRichard 
7*89a1d03eSRichard inline int i = 5; // OK: inline variable definition.
8*89a1d03eSRichard 
9*89a1d03eSRichard int b = 1;
10*89a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: variable 'b' defined in a header file; variable definitions in header files can lead to ODR violations [misc-definitions-in-headers]
11*89a1d03eSRichard 
12*89a1d03eSRichard // OK: C++14 variable template.
13*89a1d03eSRichard template <class T>
14*89a1d03eSRichard constexpr T pi = T(3.1415926L);
15