[cfe-dev] Fwd: extending ClangTool libASTUnit saving and loading

mobi phil mobi at mobiphil.com
Fri Dec 19 19:53:03 PST 2014


by mistake removed the list ...

don't know if it is interesting for anybody, but fwd. it

---------- Forwarded message ----------
From: mobi phil <mobi at mobiphil.com>
Date: Fri, Dec 19, 2014 at 5:16 PM
Subject: Re: [cfe-dev] extending ClangTool libASTUnit saving and loading
To: Richard Smith <richard at metafoo.co.uk>



> C++ modules are still pretty experimental.
>>>
>> so.. this sounds that would be almost impossible to build llvm/clang with
>> modules...
>>
>
> Clang and LLVM build fine with modules enabled; we have a buildbot that
> tests this on every commit. You need a suitably-configured system (with
> module maps for your C and C++ standard libraries), though.
>

sounds great... any hints about how to build those maps without the risk to
burn some google servers with search?


> now back to "clang -c Sema.ast" ... isn't it fair to intuitively assume
>> that it would treat the ast as a precompiled unit with all the ingredients
>> (headers) instead of PCH? In best case clang should recognize what kind of
>> ast is behind and behave accordingly?
>>
>
> That's a reasonable assumption, but the question is, what code should we
> generate when you compile from an AST file like this? Right now, we
> generate code for all the externally-visible definitions in the AST file
> (and we do the same thing whether the AST file is a preamble, a PCH, or a
> module). That's liable to change in the future (in particular, we may
> introduce a mechanism to say "do not generate definitions for an inline
> function in a module in every user of the module; instead, generate the
> code once from the module itself").
>

well, for me the answer is simple and my reasoning is based on a probably
over-simplified assumption and that is maybe I am intrigued. (Do I miss
sthg?) So for me for instance

clang -c $SEMA_DIR/Sema.cpp -o Sema.o $BUNCH_OF_COMPILER_FLAGS
#should be equivalent with the pair of commands
clang -emit-ast $SEMA_DIR/Sema.cpp -o Sema.ast $BUNCH_OF_COMPILER_FLAGS
#and
clang -c Sema.ast -o Sema.o $MAYBE_SOME_EXTRA_FLAGS
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20141220/cc1f87c3/attachment.html>


More information about the cfe-dev mailing list