<div dir="ltr">Hi Warren,<div><br></div><div>As far as I understand, a PCH is treated much like a simplified clang module and as such any PCH is an ExternalSource meaning the ExternalSource is valid in this case. I don't thing DWARF has any relevance here AFAIK.</div>
<div><br></div><div>It's likely that I was seeing this "delayed" layout behaviour due to the record in question being a class template declared in the PCH that wasn't instantiated in the PCH but later in a compiland including the PCH. After all you can't do record layout for a template class that hasn't yet been instantiated (well unless all the data members weren't dependent on template arguments). So even if known record layout are serialized in the PCH (I don't actually know if they are or not TBH) there will always be class templates instantiations that would have to be laid out after the creation of the PCH - as is the case for me.</div>
<div><br></div><div>Either way, in this case the <span style="font-size:13px;font-family:arial,sans-serif">"&& !D->getASTContext().</span><span style="font-size:13px;font-family:arial,sans-serif">getExternalSource()" still does a layout, it just does one without using MS layout rules.</span></div>
<div><br></div><div>- Will.</div>
</div>