[cfe-dev] scan-build in python

Laszlo Nagy rizsotto.mailinglist at gmail.com
Fri Jun 27 01:04:56 PDT 2014


hi,

based on your feedbacks, made several changes to the python implementation.
one of the tasks i'm struggle with is to add more comment. :) and there is
one major thing which i do in the python script, because the perl script
does the same. although i don't see the reason why it is like this.

when analyzer is executed it is done in two steps.

|  $ clang -### --analyze ...the.rest.of.the.command...
|  ...
|  "clang" "-cc1" ...some.more.parameters...
|  $ "clang" "-cc1" ...some.more.parameters...

so, we ask clang to print how to run the analyzer, and then we execute that
command which was emitted. although it would be the very same to do this

|  $ clang --analyze ...the.rest.of.the.command...

can somebody tell me what is the reason behind this indirection?

thanks in advance,
Laszlo


On Mon, Jun 23, 2014 at 3:30 PM, Laszlo Nagy <rizsotto.mailinglist at gmail.com
> wrote:

> hi there,
>
> during the last half year i did re-implemented the `ccc-analyzer` and
> `c++-analyzer` perl scripts in python. to make it into the Clang code base
> i would like to know what would be the acceptance criteria for such scripts.
>
> the current version available from here <https://github.com/rizsotto/Beye>
>
> - it works, tested on python 2.6, 2.7, 3.x,
> - it has no dependencies other than standard python modules,
> - it differs from the current perl implementation in functionality,
>   - does not generate not-used-attribute files, since analyzer does not
> report it;
>   - does not generate parser reject report, since analyzer does not report
> it;
>   - does not check '-isysroot' uniqness;
>   - does execute 'clang' binary only if it needed (one time less than
> current perl);
>   - does not copy pre-compiled header (.ghc) files into report directory;
> - it works together with current 'scan-build',
> - it was tested only on Linux.
>
> is it something that i need to fix or implement?
>
> what format would you like to get it? i'm thinking to create a python
> package out of it. (currently it's non python package conform.) but
> recently took a look on llvm-lit. which might be a good pattern to follow.
> (they keep python module structure, but CMake also plays role to install
> those scripts.)
>
> currently unit tests are written in 'nose'. (which is non standard python
> module.) shall i rewrote it into the standard python unit test? is there
> any example inside Clang code base? (python script with tests around it.)
>
> and one more question: current implementation is collecting the compiler
> and link options into separate array. but the link options are never used.
> can i stop collecting those or shall fix other parts of the code?
>
> regards,
> Laszlo
>
>
> On Mon, Oct 21, 2013 at 12:47 PM, Laszlo Nagy <
> rizsotto.mailinglist at gmail.com> wrote:
>
>> hi there,
>>
>> started to write a python script around Clang's static analyzer.
>> mainly because found difficult to use the `scan-build` script. wanted
>> to run against a compilation database instead of intercept the
>> compiler calls. but would like to preserve the current usage as
>> well... then at the same time, saw this page
>> <http://clang-analyzer.llvm.org/open_projects.html> which suggest the
>> rewrite as well. so, it might be a perfect match! ;)
>>
>> and as i try to copy the functionality of the `ccc-analyze` and
>> `scan-build` scripts, discovered few minor bugs. (or they are not
>> bugs, and i'm the one who can't read perl well.)
>>
>> now i'm looking for a person i can ask about these scripts.
>>
>> regards,
>> Laszlo
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20140627/b4fff614/attachment.html>


More information about the cfe-dev mailing list