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