[cfe-dev] Multiple root nodes for CallGraph?

Arjun Singri arjunsingri at gmail.com
Sat Oct 1 08:50:30 PDT 2011


Can you please give me some ideas for checkers to implement?

Thanks,
Arjun

On Sat, Oct 1, 2011 at 12:13 AM, Anna Zaks <ganna at apple.com> wrote:

> Hi Arjun,
>
> Currently, the clang static analyzer only performs intra-procedural
> analysis. I don't think that any other checkers in the analyzer use
> CallGraph, so you might need a bit of extra plumbing to construct one.
>
> Also, I am not sure if the checker you are working on is going to be
> different from the compiler warning:
>
> $ clang -Wall ~/tmp/example.c
> /Users/zaks/tmp/example.c:5:12: warning: unused function 'xxx'
> [-Wunused-function]
> static int foo() {return 3;}
>
> Cheers,
> Anna.
> On Sep 30, 2011, at 10:36 PM, Arjun Singri wrote:
>
> Hi,
>
> Thank you for replying. I will keep that in mind when writing the checker.
>
> To use the CallGraph class I need to supply it an object of type "Program".
> The only way I can get a Program object is through the Indexer object which
> itself is obtained from AnalysisManager. But when the AnalysisManager object
> is constructed in Frontend/AnalysisConsumer.cpp:148, a value of zero is
> passed for the Indexer making the Indexer NULL. Why is this? Can I get a
> reference to the Program object any other way?
>
> Thanks,
> Arjun
>
> On Fri, Sep 30, 2011 at 2:09 PM, Anna Zaks <ganna at apple.com> wrote:
>
>> Hi Arjun,
>>
>> scan-build is a script that hijacks the build system to call the static
>> analyzer. Currently, the analyzer can only reason about one translation unit
>> at a time.
>>
>> So there is no reason to have multiple roots to represent different main
>> functions. In addition, your checker would/should only be applicable to
>> functions with internal linkage.
>>
>> Cheers,
>> Anna.
>>
>> On Sep 30, 2011, at 12:58 PM, Arjun Singri wrote:
>>
>> > Hi,
>> >
>> > I am currently trying to implement a checker that detects unused
>> methods. I am making use of the CallGraph class for this. Every time
>> CallGraph detects the "main" function, it designates it as the root node.
>> Considering that scan-build accepts multiple files each having a main
>> function, does it make sense to modify CallGraph to have mutlple root nodes?
>> >
>> > Thanks,
>> > Arjun
>> > _______________________________________________
>> > cfe-dev mailing list
>> > cfe-dev at cs.uiuc.edu
>> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20111001/a4d96189/attachment.html>


More information about the cfe-dev mailing list