Not sure it adds that much value, but done in r222755.

On Tue, Nov 25, 2014 at 12:38 PM, Alexander Kornienko <[email protected]>
wrote:

>
>
> 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

Reply via email to