From: Ted Kremenek Date: Fri, 20 Mar 2009 17:54:25 +0000 (+0000) Subject: PTHManager::Create() now creates a PTHManager even if the PTH file contains no X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1d20197cb9478f3db17cbcfc57a1f8182843fc6a;p=clang PTHManager::Create() now creates a PTHManager even if the PTH file contains no cached tokens. This is for use with -include-pth. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67385 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Lex/PTHLexer.cpp b/lib/Lex/PTHLexer.cpp index 0a810ceaa6..e62accb642 100644 --- a/lib/Lex/PTHLexer.cpp +++ b/lib/Lex/PTHLexer.cpp @@ -648,10 +648,11 @@ PTHManager* PTHManager::Create(const std::string& file, Diagnostic* Diags) { } llvm::OwningPtr FL(PTHFileLookup::Create(FileTable, BufBeg)); - if (FL->isEmpty()) { + + // Warn if the PTH file is empty. We still want to create a PTHManager + // as the PTH could be used with -include-pth. + if (FL->isEmpty()) InvalidPTH(Diags, "PTH file contains no cached source data"); - return 0; - } // Get the location of the table mapping from persistent ids to the // data needed to reconstruct identifiers. @@ -674,7 +675,7 @@ PTHManager* PTHManager::Create(const std::string& file, Diagnostic* Diags) { llvm::OwningPtr SL(PTHStringIdLookup::Create(StringIdTable, BufBeg)); - if (SL->isEmpty()) { + if (!FL->isEmpty() && SL->isEmpty()) { InvalidPTH(Diags, "PTH file contains no identifiers."); return 0; }