On Tue, Nov 25, 2014 at 11:45 AM, Daniel Jasper <[email protected]> wrote:
> Author: djasper > Date: Tue Nov 25 04:45:23 2014 > New Revision: 222751 > > URL: http://llvm.org/viewvc/llvm-project?rev=222751&view=rev > Log: > clang-tidy: Add override before the first attribute. > > Apparently attributes aren't sorted by source location. > > Modified: > clang-tools-extra/trunk/clang-tidy/misc/UseOverride.cpp > clang-tools-extra/trunk/test/clang-tidy/misc-use-override.cpp > > Modified: clang-tools-extra/trunk/clang-tidy/misc/UseOverride.cpp > URL: > http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/misc/UseOverride.cpp?rev=222751&r1=222750&r2=222751&view=diff > > ============================================================================== > --- clang-tools-extra/trunk/clang-tidy/misc/UseOverride.cpp (original) > +++ clang-tools-extra/trunk/clang-tidy/misc/UseOverride.cpp Tue Nov 25 > 04:45:23 2014 > @@ -98,8 +98,10 @@ void UseOverride::check(const MatchFinde > if (Method->hasAttrs()) { > for (const clang::Attr *A : Method->getAttrs()) { > if (!A->isImplicit()) { > - InsertLoc = Sources.getExpansionLoc(A->getLocation()); > - break; > + SourceLocation Loc = Sources.getExpansionLoc(A->getLocation()); > + if (!InsertLoc.isValid() || > + Sources.isBeforeInTranslationUnit(Loc, InsertLoc)) > + InsertLoc = Loc; > } > } > } > > Modified: clang-tools-extra/trunk/test/clang-tidy/misc-use-override.cpp > URL: > http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/misc-use-override.cpp?rev=222751&r1=222750&r2=222751&view=diff > > ============================================================================== > --- clang-tools-extra/trunk/test/clang-tidy/misc-use-override.cpp > (original) > +++ clang-tools-extra/trunk/test/clang-tidy/misc-use-override.cpp Tue Nov > 25 04:45:23 2014 > @@ -9,6 +9,7 @@ > #define NOT_OVERRIDE > > #define MUST_USE_RESULT __attribute__((warn_unused_result)) > +#define UNUSED __attribute__((unused)) > > struct MUST_USE_RESULT MustUseResultObject {}; > > @@ -24,7 +25,7 @@ struct Base { > > virtual void j() const; > virtual MustUseResultObject k(); > - virtual bool l() MUST_USE_RESULT; > + virtual bool l() MUST_USE_RESULT UNUSED; > Maybe add a test with the reversed order of attributes? > > virtual void m(); > }; > @@ -71,9 +72,9 @@ public: > // CHECK-MESSAGES: :[[@LINE-1]]:31: warning: Prefer using > // CHECK-FIXES: {{^ MustUseResultObject k\(\) override;}} > > - virtual bool l() MUST_USE_RESULT; // Has an explicit attribute > + virtual bool l() MUST_USE_RESULT UNUSED; > // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: Prefer using > - // CHECK-FIXES: {{^ bool l\(\) override MUST_USE_RESULT;}} > + // CHECK-FIXES: {{^ bool l\(\) override MUST_USE_RESULT UNUSED;}} > > virtual void m() override final; > // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: Annotate this > @@ -117,9 +118,9 @@ public: > // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: Annotate this > // CHECK-FIXES: {{^ void j\(\) const final;}} > > - virtual bool l() final MUST_USE_RESULT; > + virtual bool l() final MUST_USE_RESULT UNUSED; > // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: Annotate this > - // CHECK-FIXES: {{^ bool l\(\) final MUST_USE_RESULT;}} > + // CHECK-FIXES: {{^ bool l\(\) final MUST_USE_RESULT UNUSED;}} > }; > > struct InlineDefinitions : public Base { > @@ -152,9 +153,9 @@ public: > // CHECK-MESSAGES: :[[@LINE-1]]:31: warning: Prefer using > // CHECK-FIXES: {{^ MustUseResultObject k\(\) override {}}} > > - virtual bool l() MUST_USE_RESULT {} // Has an explicit attribute > + virtual bool l() MUST_USE_RESULT UNUSED {} > // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: Prefer using > - // CHECK-FIXES: {{^ bool l\(\) override MUST_USE_RESULT {}}} > + // CHECK-FIXES: {{^ bool l\(\) override MUST_USE_RESULT UNUSED {}}} > }; > > struct Macros : public Base { > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > -- Alexander Kornienko | Software Engineer | [email protected] | Google Germany, Munich
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
