[cfe-dev] How to change the Clang Static Analyzer checking way

jiancai.hao@isemp.com via cfe-dev cfe-dev at lists.llvm.org
Sat Oct 5 04:43:41 PDT 2019


Hi, 
Thanks for your answer, Gabor. I understand what you are saying.  In my situation, it can be acceptable to have some false positives. The most important is, to report as many bugs in one time analysis would be much more efficient for a quick development-testing cycle, such as in a CI environment. So, I want to hacking it to make some change based on the standard Clang Static Analyzer. I'm reading the source code now, but I need some guide on this, where should I start the work.

Regards,
 


jiancai.hao at isemp.com
 
From: Gábor Horváth
Date: 2019-10-05 17:29
To: jiancai.hao at isemp.com
CC: cfe-dev
Subject: Re: [cfe-dev] How to change the Clang Static Analyzer checking way
Hi,

When there is a fatal error found in the code there is no way to meaningfully update the analysis state and continue the analysis. This implies once the analyzer finds a fatal error on a path the analysis will stop there and no additional bugs will be reported from that path. This is by design and the alternatives we have would introduce additional false positives.

If you have compilation errors, you do not have a complete representation of the code in Clang. The static analyzer does not support the analysis of incomplete ASTs. Running the analyzer on incomplete AST would result in spurious warnings and bad user experience.

Cheers,
Gabor

On Sat, 5 Oct 2019 at 10:37, jiancai.hao at isemp.com via cfe-dev <cfe-dev at lists.llvm.org> wrote:
Hi, Dear cfe-dev,

For Clang Static Analyzer, we are interested in it very much. I'm planning to implements such checking ways for my projects:

(1) When there are two same defects in the same function, we hope to find and report them all out, for example, if there are two divided by zero errors:

int main() {
    int n = 0;
    int a = 10;
    a = a/n;                     // Clang Static Analyzer will report div zero bug here, and will stop to check the following codes.
    a = 10/n;                   // I hope to report this div zero bug also, how to do?
}

(2) I hope to continue to complete the static analysis, even if the source code has compling errors, how to deal with it?

Regards,



jiancai.hao at isemp.com
_______________________________________________
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/20191005/ab4b8283/attachment.html>


More information about the cfe-dev mailing list