[cfe-dev] Bug in .clang-tidy parsing?

Paul Wicks via cfe-dev cfe-dev at lists.llvm.org
Wed Aug 9 10:46:11 PDT 2017


Thanks for the quick turnaround! I also discovered that if I list every
single check explicitly and don't use any wildcards apart from the first
"-*", then only the listed checks are used and everything seems to work,
e.g.:

Checks: >
    -*,
    cert-dcl03-c,
    cert-dcl50-cpp,
    cert-dcl54-cpp,
    cert-dcl59-cpp,
    cert-err52-cpp,
    cert-err58-cpp,
    cert-err60-cpp,
    ....
    many many more checks


-Paul Wicks

On Wed, Aug 9, 2017 at 9:02 AM, Alexander Kornienko <alexfh at google.com>
wrote:

> I've committed a workaround (2) in r310491.
>
> On Wed, Aug 9, 2017 at 5:28 PM, Alexander Kornienko <alexfh at google.com>
> wrote:
>
>> The issue seems to be that the LLVM's YAML parser doesn't implement
>> multiline literal folding, which results in the checks list containing line
>> breaks. Clang-tidy doesn't drop newlines in the checks list (because I
>> haven't recognized the limitation of our YAML parser when reviewing
>> https://reviews.llvm.org/D30567), and the list of checks is
>> misinterpreted.
>>
>> There are (at least) two solutions:
>> 1. Ideally, YAML parser would benefit from the support of multiline
>> literal folding.
>> 2. As a quick workaround, we can trim newlines from the checks list.
>>
>> On Wed, Aug 9, 2017 at 2:41 PM, Manuel Klimek <klimek at google.com> wrote:
>>
>>> +alex
>>>
>>> On Tue, Aug 8, 2017 at 7:45 PM Paul Wicks via cfe-dev <
>>> cfe-dev at lists.llvm.org> wrote:
>>>
>>>> Hi all,
>>>>
>>>> Not sure if this is a bug or i'm just misunderstanding how
>>>> configuration for .clang-tidy is supposed to work.
>>>>
>>>> In my .clang-tidy I have specified the checks to be run as follows:
>>>>
>>>> Checks: >
>>>>     -*,
>>>>     cert-*,
>>>>     clang-analyzer-*,
>>>>     cppcoreguidelines-pro-*,
>>>>     -cppcoreguidelines-pro-bounds-pointer-arithmetic,
>>>>     misc-*,
>>>>     modernize-*,
>>>>     performance-*,
>>>>
>>>> What I expect when I run clang-tidy is that it will run all the checks
>>>> except for cppcoreguidelines-pro-bounds-pointer-arithmetic and the
>>>> llvm and readability checks. Instead, clang-tidy seems to run every check.
>>>> If I change the list to just be something like this:
>>>>
>>>>
>>>> Checks: >
>>>>     -*,
>>>>     cert-*,
>>>>     clang-analyzer-*,
>>>>
>>>>
>>>> Then the expected behavior occurs, only the cert and clang-analyzer
>>>> checks are run. But if I add anything more, for example:
>>>>
>>>> Checks: >
>>>>     -*,
>>>>     cert-*,
>>>>     clang-analyzer-*,
>>>>     modernize-*,
>>>>
>>>>
>>>> Then again, all checks are run, not just cert, clang-analyzer and
>>>> modernize. Is this expected behavior?
>>>>
>>>> -Paul Wicks
>>>> _______________________________________________
>>>> cfe-dev mailing list
>>>> cfe-dev at lists.llvm.org
>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170809/5a8801c4/attachment.html>


More information about the cfe-dev mailing list