forked from OSchip/llvm-project
Serialization: use the PCH chain to check PCH mode
When we are deciding whether we are creating a PCH or a module, we would check if the ModuleMgr had any elements to switch into PCH mode. However, when creating a module, the size may be 1. This would result in us going down the wrong path. This was found by cross-compiling the swift standard library. Use the PCH chain length instead to identify the PCH mode. Unfortunately, I have not yet been able to create a simple test case for this, but have verified that this fixes the swift standard library construction. Thanks to Adrian Prantl for help and discussions with this change! llvm-svn: 296769
This commit is contained in:
parent
fffa179837
commit
97d25552ed
|
@ -7928,7 +7928,8 @@ ASTReader::getSourceDescriptor(unsigned ID) {
|
|||
|
||||
// If there is only a single PCH, return it instead.
|
||||
// Chained PCH are not suported.
|
||||
if (ModuleMgr.size() == 1) {
|
||||
const auto &PCHChain = ModuleMgr.pch_modules();
|
||||
if (std::distance(std::begin(PCHChain), std::end(PCHChain))) {
|
||||
ModuleFile &MF = ModuleMgr.getPrimaryModule();
|
||||
StringRef ModuleName = llvm::sys::path::filename(MF.OriginalSourceFileName);
|
||||
StringRef FileName = llvm::sys::path::filename(MF.FileName);
|
||||
|
|
Loading…
Reference in New Issue