[cfe-dev] Cross Translation Unit Support in Clang

Gábor Horváth via cfe-dev cfe-dev at lists.llvm.org
Fri Jun 23 01:40:20 PDT 2017


Anna,

Are you ok having libTooling as a dependency of the Static Analyzer? I
think this is not a bad direction since it has other good utilities that
the Static Analyzer could use in the future such as Replacements, FixIts.

Regards,
Gábor

On 22 June 2017 at 12:10, Manuel Klimek <klimek at google.com> wrote:

> For clang tooling, I don't really expect us to do cross-TU AST loading
> outside of what modules will provide, as that inherently doesn't scale.
> Instead, we usually design pipelined approaches where the first "scan" over
> the codebase provides data which are reduced to the information needed for
> the tool.
>
> That said, I can't predict the future, and people have expressed interest
> in that functionality, so
> a) I agree it's a good idea to add and
> b) I think it's a good fit for libtooling
>
> Cheers,
> /Manuel
>
>
> On Thu, Jun 22, 2017 at 11:58 AM Aleksei Sidorin <a.sidorin at samsung.com>
> wrote:
>
>> Hello Gabor,
>>
>> Internally, we have created XTU module inside clang (lib/XTU). I think
>> it is the best way because importing is not related to analyzer
>> directly. We're not going to use it outside of CSA but I think future
>> users should have such possibility.
>>
>> 22.06.2017 12:41, Gábor Horváth пишет:
>> > Hi!
>> >
>> > It looks like there is a consensus to accept the cross translation
>> > unit analysis patch into the clang static analyzer:
>> > https://reviews.llvm.org/D30691
>> >
>> > There is one part of the patch that is independent of the static
>> > analyzer. The logic which can look up a function in an index and load
>> > a serialized AST that contains the definition of the function.
>> > The lookup is cached, and after the AST is loaded, the function
>> > definition will be merged into the original AST.
>> >
>> > Right now, in the current patch, this functionality is in the
>> > ASTContext. This is definitely not the right place to put this. So the
>> > question is, do you plan to utilize similar functionality in Clang
>> > tooling or clang tidy?
>> >
>> > If yes, we might end up creating a new module for that (or add it to
>> > an existing commonly used one like libtooling?). If no, we will move
>> > the corresponding code to the static analyzer.
>> >
>> > What do you think?
>> >
>> > In case you are interested in how it works, you can check out the
>> > EuroLLVM talk:
>> > http://llvm.org/devmtg/2017-03//2017/02/20/accepted-sessions.html#7
>> >
>> > Regards,
>> > Gábor
>>
>>
>> --
>> Best regards,
>> Aleksei Sidorin,
>> SRR, Samsung Electronics
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170623/c2f29adc/attachment.html>


More information about the cfe-dev mailing list