Implement Checker with LibTooling

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Implement Checker with LibTooling

Hubert Tong via cfe-dev
Hi everyone,

I'm writing a C/C++ static analysis tool with LibTooling. The program walks through the source code and searches for custom criterias. The program works well but I still don't know how to implement Clang Checker into LibTooling.

I'm reading the instruction "CLANG STATIC ANALYZER - A Checker Developer’s Guide". Please tell me how to know/get the current CheckerContext in a location of source code.

Thank you!

----------------
Best regards,
Thien Tran.

_______________________________________________
cfe-dev mailing list
[hidden email]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: Implement Checker with LibTooling

Hubert Tong via cfe-dev
Static Analyzer's CheckerContext is a temporary entity that only makes sense during path-sensitive analysis. libTooling doesn't conduct path-sensitive analysis for you; in order to obtain CheckerContext you'll need to instantiate the entire Static Analyzer. Clang-Tidy is an example of a tool that does that but that isn't supposed to be easy.

Generally, you most likely don't want to use path-sensitive analysis for anything other than bug-finding because it doesn't tell you anything except "there *exists* an execution path through your code that satisfies certain criteria";  in particular, it can't be used for proving absence of such path in your code. And you definitely shouldn't try to build a tool that only runs one checker in isolation; Static Analyzer's checker depend on each other for correctness. For these reasons what you're doing probably doesn't make sense and you'll have better luck either writing a new Static Analyzer checker without creating a separate tool, or create a separate tool without trying to use CheckerContext.


On 8/21/20 6:33 AM, Thien Tran via cfe-dev wrote:
Hi everyone,

I'm writing a C/C++ static analysis tool with LibTooling. The program walks through the source code and searches for custom criterias. The program works well but I still don't know how to implement Clang Checker into LibTooling.

I'm reading the instruction "CLANG STATIC ANALYZER - A Checker Developer’s Guide". Please tell me how to know/get the current CheckerContext in a location of source code.

Thank you!

----------------
Best regards,
Thien Tran.

_______________________________________________
cfe-dev mailing list
[hidden email]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev


_______________________________________________
cfe-dev mailing list
[hidden email]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: Implement Checker with LibTooling

Hubert Tong via cfe-dev
Thank you for your response,
Therefore I think it's better to implement my tool to Clang Checker.

Thank you again for information!

----------------
Best regards,
Thien Tran.


On Mon, 24 Aug 2020 at 19:01, Artem Dergachev <[hidden email]> wrote:
Static Analyzer's CheckerContext is a temporary entity that only makes sense during path-sensitive analysis. libTooling doesn't conduct path-sensitive analysis for you; in order to obtain CheckerContext you'll need to instantiate the entire Static Analyzer. Clang-Tidy is an example of a tool that does that but that isn't supposed to be easy.

Generally, you most likely don't want to use path-sensitive analysis for anything other than bug-finding because it doesn't tell you anything except "there *exists* an execution path through your code that satisfies certain criteria";  in particular, it can't be used for proving absence of such path in your code. And you definitely shouldn't try to build a tool that only runs one checker in isolation; Static Analyzer's checker depend on each other for correctness. For these reasons what you're doing probably doesn't make sense and you'll have better luck either writing a new Static Analyzer checker without creating a separate tool, or create a separate tool without trying to use CheckerContext.


On 8/21/20 6:33 AM, Thien Tran via cfe-dev wrote:
Hi everyone,

I'm writing a C/C++ static analysis tool with LibTooling. The program walks through the source code and searches for custom criterias. The program works well but I still don't know how to implement Clang Checker into LibTooling.

I'm reading the instruction "CLANG STATIC ANALYZER - A Checker Developer’s Guide". Please tell me how to know/get the current CheckerContext in a location of source code.

Thank you!

----------------
Best regards,
Thien Tran.

_______________________________________________
cfe-dev mailing list
[hidden email]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev


_______________________________________________
cfe-dev mailing list
[hidden email]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev