[PATCH] Add a level parameter to ClangTidyCheck::diag.

Peter Collingbourne peter at pcc.me.uk
Sun Mar 2 15:41:10 PST 2014


On Sun, Mar 02, 2014 at 04:59:27PM +0000, Alp Toker wrote:
>
> On 02/03/2014 16:18, Alp Toker wrote:
>>
>> On 02/03/2014 12:25, Peter Collingbourne wrote:
>>>
>>> Index: clang-tidy/ClangTidy.h
>>> ===================================================================
>>> --- clang-tidy/ClangTidy.h
>>> +++ clang-tidy/ClangTidy.h
>>> @@ -76,7 +76,8 @@
>>>     void setContext(ClangTidyContext *Ctx) { Context = Ctx; }
>>>       /// \brief Add a diagnostic with the check's name.
>>> -  DiagnosticBuilder diag(SourceLocation Loc, StringRef Description);
>>> +  DiagnosticBuilder diag(SourceLocation Loc, StringRef Description,
>>> +                         DiagnosticIDs::Level Level =  
>>> DiagnosticIDs::Warning);
>>
>> Could you order the parameters Loc, Level, FormatString and drop the  
>> default argument?
>>
>> That'll provide visual consistency with the output as well as internal  
>> consistency with clang's own getCustomDiagID(Level L, StringRef  
>> FormatString).
>>
>> That way it becomes kind of a shorthand for diag(getCustomDiagID(...))  
>> << ... which is a step towards unifying built-in and custom diagnostic  
>> IDs.
>
> So it looks like there's a convention of listing the diag Level _after_  
> the Message clang-tools-extra, and diag(Loc, "message") without  
> specifying a Level. Neither looks like a good idea but if the plan is to  
> keep that convention then I guess your patch is OK.
>
> It's a failing of clang's diag/tablegen system that it wasn't made  
> reusable and ended up getting re-rolled in external projects, each with  
> slightly different interfaces :-/

I think the plan is to eventually use tablegen here; see the comments above
ClangDiagContext::diag.

Anyway, committed now, r202668.

Thanks,
-- 
Peter



More information about the cfe-commits mailing list