зеркало из https://github.com/microsoft/clang-1.git
If we fail to create a temporary file for the precompiled preamble,
just abort creation of the precompiled preamble rather than doing silly things. This is the second part of the fix for the weird preamble-related failures on Windows. Big thanks to Francois Pichet for the great detective work! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113697 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
0d155a5e1d
Коммит
2cd4fd4b75
|
@ -1093,6 +1093,15 @@ llvm::MemoryBuffer *ASTUnit::getMainBufferWithPrecompiledPreamble(
|
|||
return 0;
|
||||
}
|
||||
|
||||
// Create a temporary file for the precompiled preamble. In rare
|
||||
// circumstances, this can fail.
|
||||
std::string PreamblePCHPath = GetPreamblePCHPath();
|
||||
if (PreamblePCHPath.empty()) {
|
||||
// Try again next time.
|
||||
PreambleRebuildCounter = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
// We did not previously compute a preamble, or it can't be reused anyway.
|
||||
llvm::Timer *PreambleTimer = 0;
|
||||
if (TimerGroup.get()) {
|
||||
|
@ -1138,7 +1147,7 @@ llvm::MemoryBuffer *ASTUnit::getMainBufferWithPrecompiledPreamble(
|
|||
if (::getenv("LIBCLANG_CHAINING"))
|
||||
FrontendOpts.ChainedPCH = true;
|
||||
// FIXME: Generate the precompiled header into memory?
|
||||
FrontendOpts.OutputFile = GetPreamblePCHPath();
|
||||
FrontendOpts.OutputFile = PreamblePCHPath;
|
||||
|
||||
// Create the compiler instance to use for building the precompiled preamble.
|
||||
CompilerInstance Clang;
|
||||
|
|
Загрузка…
Ссылка в новой задаче