[cfe-dev] Clang Static Analyzer multipass checker

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


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

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/9f8406aa/attachment.html>


More information about the cfe-dev mailing list