diff options
-rw-r--r-- | include/clang/Frontend/Utils.h | 4 | ||||
-rw-r--r-- | lib/Frontend/InitPreprocessor.cpp | 8 | ||||
-rw-r--r-- | tools/clang-cc/clang-cc.cpp | 9 |
3 files changed, 12 insertions, 9 deletions
diff --git a/include/clang/Frontend/Utils.h b/include/clang/Frontend/Utils.h index cc0d1b5671..60c0f226ef 100644 --- a/include/clang/Frontend/Utils.h +++ b/include/clang/Frontend/Utils.h @@ -48,9 +48,9 @@ void ApplyHeaderSearchOptions(HeaderSearch &HS, /// InitializePreprocessor - Initialize the preprocessor getting it and the /// environment ready to process a single file. -/// void InitializePreprocessor(Preprocessor &PP, - const PreprocessorOptions &PPOpts); + const PreprocessorOptions &PPOpts, + const HeaderSearchOptions &HSOpts); /// ProcessWarningOptions - Initialize the diagnostic client and process the /// warning options specified on the command line. diff --git a/lib/Frontend/InitPreprocessor.cpp b/lib/Frontend/InitPreprocessor.cpp index 15ea9015a2..ad70727c05 100644 --- a/lib/Frontend/InitPreprocessor.cpp +++ b/lib/Frontend/InitPreprocessor.cpp @@ -456,7 +456,8 @@ static void InitializePredefinedMacros(const TargetInfo &TI, /// environment ready to process a single file. This returns true on error. /// void clang::InitializePreprocessor(Preprocessor &PP, - const PreprocessorOptions &InitOpts) { + const PreprocessorOptions &InitOpts, + const HeaderSearchOptions &HSOpts) { std::vector<char> PredefineBuffer; const char *LineDirective = "# 1 \"<built-in>\" 3\n"; @@ -501,4 +502,9 @@ void clang::InitializePreprocessor(Preprocessor &PP, // Null terminate PredefinedBuffer and add it. PredefineBuffer.push_back(0); PP.setPredefines(&PredefineBuffer[0]); + + // Initialize the header search object. + ApplyHeaderSearchOptions(PP.getHeaderSearchInfo(), HSOpts, + PP.getLangOptions(), + PP.getTargetInfo().getTriple()); } diff --git a/tools/clang-cc/clang-cc.cpp b/tools/clang-cc/clang-cc.cpp index 0b5a6d35a6..5cce02ff4b 100644 --- a/tools/clang-cc/clang-cc.cpp +++ b/tools/clang-cc/clang-cc.cpp @@ -377,6 +377,7 @@ std::string GetBuiltinIncludePath(const char *Argv0) { static Preprocessor * CreatePreprocessor(Diagnostic &Diags, const LangOptions &LangInfo, const PreprocessorOptions &PPOpts, + const HeaderSearchOptions &HSOpts, const DependencyOutputOptions &DepOpts, TargetInfo &Target, SourceManager &SourceMgr, FileManager &FileMgr) { @@ -413,7 +414,7 @@ CreatePreprocessor(Diagnostic &Diags, const LangOptions &LangInfo, PP->setPTHManager(PTHMgr); } - InitializePreprocessor(*PP, PPOpts); + InitializePreprocessor(*PP, PPOpts, HSOpts); // Handle generating dependencies, if requested. if (!DepOpts.OutputFile.empty()) @@ -1209,14 +1210,10 @@ int main(int argc, char **argv) { llvm::OwningPtr<Preprocessor> PP(CreatePreprocessor(Diags, CompOpts.getLangOpts(), CompOpts.getPreprocessorOpts(), + CompOpts.getHeaderSearchOpts(), CompOpts.getDependencyOutputOpts(), *Target, SourceMgr, FileMgr)); - // Apply all the options to the header search object. - ApplyHeaderSearchOptions(PP->getHeaderSearchInfo(), - CompOpts.getHeaderSearchOpts(), - CompOpts.getLangOpts(), Triple); - if (CompOpts.getPreprocessorOpts().getImplicitPCHInclude().empty()) { if (InitializeSourceManager(*PP.get(), InFile)) continue; |