[cfe-dev] Cross Translation Unit Support in Clang

Gábor Horváth via cfe-dev cfe-dev at lists.llvm.org
Fri Jun 23 12:39:57 PDT 2017


This is a dependency for the Static Analyzer component within clang (to
another component, which is in clang as well). It is a similar dependency
to this:
https://github.com/llvm-mirror/clang/commit/a994aad333a56b8c9dd49bcfb5090a393d193387

On 23 June 2017 at 19:48, Anna Zaks <ganna at apple.com> wrote:

>
> On Jun 23, 2017, at 1:40 AM, Gábor Horváth <xazax.hun at gmail.com> wrote:
>
> Anna,
>
> Are you ok having libTooling as a dependency of the Static Analyzer?
>
>
> Are we talking about introducing dependency for scan-build or clang itself?
>
> 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/a1055fea/attachment.html>


More information about the cfe-dev mailing list