Hey Alex!<br><br><div class="gmail_quote">On Fri, Aug 31, 2012 at 4:36 PM, Alexander Kornienko <span dir="ltr"><<a href="mailto:alexfh@google.com" target="_blank">alexfh@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>Hi,</div><div><br></div><div>I have a quick-and-dirty implementation of macro history (de-)serialization, but it is still not fully working. In particular, I still have to teach reading code to distinguish between identifiers that have macro definition currently, and those that had one before. I already taught ASTWriter to care about currently undefined macros, but I had to add HadMacro flag in IdentifierInfo for this purpose (hopefully there was one spare bit in 32-bit word for this).</div>

<div><br></div><div>To complete this I have to gain much deeper understanding of things I'm changing, so I'd appreciate if someone explained me several things (or pointed me to the documentation if it exists): structure of PCH files and what is stored there, the idea behind chained PCHs and how they work, what are public/non-public macros (is it related to Objective C only?).</div>
</blockquote><div> </div><div>There is some documentation for PCH and the bitcode format it uses:</div><div><br></div><div><a href="http://clang.llvm.org/docs/PCHInternals.html">http://clang.llvm.org/docs/PCHInternals.html</a></div>
<div><a href="http://llvm.org/docs/BitCodeFormat.html">http://llvm.org/docs/BitCodeFormat.html</a></div><div><br></div><div>I don't think we have any documentation for PCH chaining.</div></div>