diff options
author | Douglas Gregor <dgregor@apple.com> | 2012-10-23 06:18:24 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2012-10-23 06:18:24 +0000 |
commit | fc9e7a2969650e52a87864a6a79bd37b42ea33e3 (patch) | |
tree | 6c2443b774cf45deb6725e8ba96d5d9f2323cc0b /clang/lib/Frontend/ASTUnit.cpp | |
parent | abf836cffa8ea53e67f56fddc49ed7063f7a0e85 (diff) | |
download | llvm-fc9e7a2969650e52a87864a6a79bd37b42ea33e3.zip llvm-fc9e7a2969650e52a87864a6a79bd37b42ea33e3.tar.gz llvm-fc9e7a2969650e52a87864a6a79bd37b42ea33e3.tar.bz2 |
If the precompiled header named by "-include" is actually a directory,
check each of the files within that directory to determine if any of
them is an AST file that matches the language and target options. If
so, the first matching AST file is loaded. This fixes a longstanding
discrepency with GCC's precompiled header implementation.
llvm-svn: 166469
Diffstat (limited to 'clang/lib/Frontend/ASTUnit.cpp')
-rw-r--r-- | clang/lib/Frontend/ASTUnit.cpp | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/clang/lib/Frontend/ASTUnit.cpp b/clang/lib/Frontend/ASTUnit.cpp index a340d7db..11cddc78 100644 --- a/clang/lib/Frontend/ASTUnit.cpp +++ b/clang/lib/Frontend/ASTUnit.cpp @@ -523,14 +523,11 @@ public: Predefines(Predefines), Counter(Counter), NumHeaderInfos(0), InitializedLanguage(false) {} - virtual bool ReadLanguageOptions(const serialization::ModuleFile &M, - const LangOptions &LangOpts, + virtual bool ReadLanguageOptions(const LangOptions &LangOpts, bool Complain) { if (InitializedLanguage) return false; - assert(M.Kind == serialization::MK_MainFile); - LangOpt = LangOpts; InitializedLanguage = true; @@ -538,16 +535,12 @@ public: return false; } - virtual bool ReadTargetOptions(const serialization::ModuleFile &M, - const TargetOptions &TargetOpts, + virtual bool ReadTargetOptions(const TargetOptions &TargetOpts, bool Complain) { // If we've already initialized the target, don't do it again. if (Target) return false; - assert(M.Kind == serialization::MK_MainFile); - - this->TargetOpts = new TargetOptions(TargetOpts); Target = TargetInfo::CreateTargetInfo(PP.getDiagnostics(), *this->TargetOpts); |