xref: /llvm-project/clang-tools-extra/test/clang-tidy/checkers/modernize/use-override-ms.cpp (revision 89a1d03e2b379e325daa5249411e414bbd995b5e)
1*89a1d03eSRichard // RUN: %check_clang_tidy %s modernize-use-override %t -- -- -fms-extensions
2*89a1d03eSRichard 
3*89a1d03eSRichard // This test is designed to test ms-extension __declspec(dllexport) attributes.
4*89a1d03eSRichard #define EXPORT __declspec(dllexport)
5*89a1d03eSRichard 
6*89a1d03eSRichard class Base {
7*89a1d03eSRichard   virtual EXPORT void a();
8*89a1d03eSRichard };
9*89a1d03eSRichard 
10*89a1d03eSRichard class EXPORT InheritedBase {
11*89a1d03eSRichard   virtual void a();
12*89a1d03eSRichard };
13*89a1d03eSRichard 
14*89a1d03eSRichard class Derived : public Base {
15*89a1d03eSRichard   virtual EXPORT void a();
16*89a1d03eSRichard   // CHECK-MESSAGES: :[[@LINE-1]]:23: warning: prefer using 'override' or (rarely) 'final' instead of 'virtual' [modernize-use-override]
17*89a1d03eSRichard   // CHECK-FIXES: {{^}}  EXPORT void a() override;
18*89a1d03eSRichard };
19*89a1d03eSRichard 
20*89a1d03eSRichard class EXPORT InheritedDerived : public InheritedBase {
21*89a1d03eSRichard   virtual void a();
22*89a1d03eSRichard   // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: prefer using 'override' or (rarely) 'final' instead of 'virtual' [modernize-use-override]
23*89a1d03eSRichard   // CHECK-FIXES: {{^}}  void a() override;
24*89a1d03eSRichard };
25*89a1d03eSRichard 
26