Cross translational unit LocationContext?

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

Cross translational unit LocationContext?

Matthieu Brucher via cfe-dev
Hello everyone,

In my checker I am analyzing the LocationContext object to get the chain of functions which were called up to the current program point (similar to what LocationContext::dumpStack() does).
Of course, when analyzing a single source file, the chain contains only local functions.

But is there a way to get the _whole_ (global) chain?

I know there is a patch for cross translational unit analysis (https://reviews.llvm.org/D30691) but I still have't been able to dump the whole stack.

Thanks, Tom

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

Re: Cross translational unit LocationContext?

Matthieu Brucher via cfe-dev
We don't have the global chain because we don't analyze the program
starting from main() - we only have a look at individual functions and
see if there are any defects that we can prove by looking at just those
functions and their direct or indirect *callees*, without trying to
guess their *callers*. `LocationContext::dumpStack()` prints all stack
frames that we see, in all cases, starting from the beginning of the
current "analysis" (the "analysis" is a single choice of a top-level
functions, and currently we conduct multiple analysis per translation
unit until all functions in the translation unit were covered either as
top-level functions or as callees). Even when the cross-translation-unit
patch lands, the location context chain would contain the whole stack,
and we still wouldn't be analyzing the whole program from main(), we'd
just behave better when those callees are not in the same translation
unit, but we'd still begin our analysis from pretty much arbitrary
individual functions.

On 10/01/2018 12:12 AM, themod 1302 via cfe-dev wrote:

> Hello everyone,
>
> In my checker I am analyzing the LocationContext object to get the
> chain of functions which were called up to the current program point
> (similar to what LocationContext::dumpStack() does).
> Of course, when analyzing a single source file, the chain contains
> only local functions.
>
> But is there a way to get the _whole_ (global) chain?
>
> I know there is a patch for cross translational unit analysis
> (https://reviews.llvm.org/D30691) but I still have't been able to dump
> the whole stack.
>
> Thanks, Tom
>
>
> _______________________________________________
> cfe-dev mailing list
> [hidden email]
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev

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