[cfe-dev] Clang Static Analyzer multipass checker

Kristóf Umann via cfe-dev cfe-dev at lists.llvm.org
Mon Jun 10 10:02:03 PDT 2019


On Mon, 10 Jun 2019 at 19:01, Kristóf Umann <dkszelethus at gmail.com> wrote:

> Hi!
>
> Are you using the latest 'n' greatest clang? If so, you may add options to
> your checker by first declaring it in Checkers.td, here's an example:
>
> def MyExample : Checker<"MyChecker">,
>   HelpText<"blahblah">,
>   CheckerOptions<[
>     CmdLineOption<Boolean,  // type of the option: String, Boolean, Integer
>                   "Option1", // name
>                   "example description 1", // description
>                   "true", // default value
>                   Released, // development stage: InAlpha, Released
>                   Hide>, // whether it should be hidden, e.g. it's an
> implementation detail
>     CmdLineOption<Integer,
>                   "Option2",
>                   "example description 2",
>                   5475764,
>                   InAlpha>, // note that this option isn't hidden
>   ]>,
>   Documentation<HasDocumentation>;
>
> Then, you may invoke the analyzer with the new options as you normally
> would:
>
> clang -cc1 -analyze -analyzer-checker=MyExample -analyzer-config
> MyExample:Option1=false
> clang --analyze -Xclang -analyzer-checker=MyExample -Xclang
> -analyzer-config -Xclang MyExample:Option1=false
>

Meant to write MyChecker instead of MyExample, whoops.

>
>
> Please follow up if you're still having trouble!
>
> On Mon, 10 Jun 2019 at 17:30, Алексеев Кирилл via cfe-dev <
> cfe-dev at lists.llvm.org> wrote:
>
>>
>> Hello, I'm beginner in CSA programming. I have read clang SA a checker
>> developer manual
>> and have some questions.
>> How can I pass command line options to CSA checker? Does -Xanalyzer
>> option can help me?
>> May be I need to see AnalyzerOptions.cpp, but can't understand how to
>> catch options from my checker.
>>
>> Also I want to know  is it possible to realize multi-pass analyzer with
>> parallel or sequential running of one or multiply checker with data
>> transfer between passes.
>> I need to run first checker that taint some input, observes taint values
>> and find some AST expressions (or with path sensible analysis).
>> After this checker ends up I need to start the second checker, that uses
>> search results of 1'st in analysis from begining of ExplodedGraph.
>>
>
> Are you sure that you need two sequential passes? As far as I know, we
> have nothing like that currently.
>
>
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at lists.llvm.org
>> https://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/20190610/791217fa/attachment.html>


More information about the cfe-dev mailing list