diff options
author | Daniel Jasper <djasper@google.com> | 2014-06-02 15:22:22 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2014-06-02 15:22:22 +0000 |
commit | 88996755cb7454d575ad337cf8fcbd08762728fc (patch) | |
tree | 2e64293feacddcbfb2f92afa303a30d88466df92 /clang-tools-extra | |
parent | b1415c46fb5859d29ebd04bf78bc542881a590e7 (diff) | |
download | bcm5719-llvm-88996755cb7454d575ad337cf8fcbd08762728fc.tar.gz bcm5719-llvm-88996755cb7454d575ad337cf8fcbd08762728fc.zip |
clang-tidy: Extend the use-override check to understand 'final'.
llvm-svn: 210031
Diffstat (limited to 'clang-tools-extra')
-rw-r--r-- | clang-tools-extra/clang-tidy/misc/UseOverride.cpp | 8 | ||||
-rw-r--r-- | clang-tools-extra/test/clang-tidy/use-override.cpp | 19 |
2 files changed, 24 insertions, 3 deletions
diff --git a/clang-tools-extra/clang-tidy/misc/UseOverride.cpp b/clang-tools-extra/clang-tidy/misc/UseOverride.cpp index 628c20f4a22..b2dc912b44c 100644 --- a/clang-tools-extra/clang-tidy/misc/UseOverride.cpp +++ b/clang-tools-extra/clang-tidy/misc/UseOverride.cpp @@ -65,8 +65,9 @@ void UseOverride::check(const MatchFinder::MatchResult &Result) { !Method->isVirtualAsWritten()) return; // Nothing to do. - DiagnosticBuilder Diag = diag(Method->getLocation(), - "Prefer using 'override' instead of 'virtual'"); + DiagnosticBuilder Diag = + diag(Method->getLocation(), + "Prefer using 'override' or 'final' instead of 'virtual'"); CharSourceRange FileRange = Lexer::makeFileCharRange(CharSourceRange::getTokenRange( @@ -83,7 +84,8 @@ void UseOverride::check(const MatchFinder::MatchResult &Result) { Result.Context->getLangOpts()); // Add 'override' on inline declarations that don't already have it. - if (Method->getAttr<clang::OverrideAttr>() == nullptr) { + if (Method->getAttr<clang::OverrideAttr>() == nullptr && + Method->getAttr<clang::FinalAttr>() == nullptr) { SourceLocation InsertLoc; StringRef ReplacementText = "override "; diff --git a/clang-tools-extra/test/clang-tidy/use-override.cpp b/clang-tools-extra/test/clang-tidy/use-override.cpp index 25c5a6a6c40..e2e61b458e4 100644 --- a/clang-tools-extra/test/clang-tidy/use-override.cpp +++ b/clang-tools-extra/test/clang-tidy/use-override.cpp @@ -62,6 +62,25 @@ void SimpleCases::i() {} SimpleCases::~SimpleCases() {} // CHECK: {{^SimpleCases::~SimpleCases\(\) {}}} +struct FinalSpecified : public Base { +public: + virtual ~FinalSpecified() final; + // CHECK: {{^ ~FinalSpecified\(\) final;}} + + void b() final; + // CHECK: {{^ void b\(\) final;}} + virtual void d() final; + // CHECK: {{^ void d\(\) final;}} + + virtual void e() final = 0; + // CHECK: {{^ void e\(\) final = 0;}} + + virtual void j() const final; + // CHECK: {{^ void j\(\) const final;}} + virtual bool l() final MUST_USE_RESULT; + // CHECK: {{^ bool l\(\) final MUST_USE_RESULT;}} +}; + struct InlineDefinitions : public Base { public: virtual ~InlineDefinitions() {} |