From: Daniel Dunbar Date: Tue, 10 Nov 2009 23:53:43 +0000 (+0000) Subject: PreprocessorOptions: Get rid of unnecessary 'isPTH' flag for include entries. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b6d1cc84d1a7e314f7a7a02fbe092adc4caf67e8;p=clang PreprocessorOptions: Get rid of unnecessary 'isPTH' flag for include entries. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86757 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Frontend/PreprocessorOptions.h b/include/clang/Frontend/PreprocessorOptions.h index d2af829c6d..fc400faa10 100644 --- a/include/clang/Frontend/PreprocessorOptions.h +++ b/include/clang/Frontend/PreprocessorOptions.h @@ -10,6 +10,7 @@ #ifndef LLVM_CLANG_FRONTEND_PREPROCESSOROPTIONS_H_ #define LLVM_CLANG_FRONTEND_PREPROCESSOROPTIONS_H_ +#include "llvm/ADT/StringRef.h" #include #include @@ -22,7 +23,7 @@ class LangOptions; /// used in preprocessor initialization to InitializePreprocessor(). class PreprocessorOptions { std::vector > Macros; - std::vector > Includes; + std::vector Includes; std::vector MacroIncludes; unsigned UsePredefines : 1; /// Initialize the preprocessor with the compiler @@ -61,14 +62,14 @@ public: ImplicitPTHInclude = Value; } - void addMacroDef(const std::string &Name) { + void addMacroDef(llvm::StringRef Name) { Macros.push_back(std::make_pair(Name, false)); } - void addMacroUndef(const std::string &Name) { + void addMacroUndef(llvm::StringRef Name) { Macros.push_back(std::make_pair(Name, true)); } - void addInclude(const std::string &Name, bool isPTH = false) { - Includes.push_back(std::make_pair(Name, isPTH)); + void addInclude(llvm::StringRef Name) { + Includes.push_back(Name); } void addMacroInclude(const std::string &Name) { MacroIncludes.push_back(Name); @@ -79,8 +80,7 @@ public: macro_iterator macro_begin() const { return Macros.begin(); } macro_iterator macro_end() const { return Macros.end(); } - typedef std::vector >::const_iterator include_iterator; + typedef std::vector::const_iterator include_iterator; include_iterator include_begin() const { return Includes.begin(); } include_iterator include_end() const { return Includes.end(); } diff --git a/lib/Frontend/InitPreprocessor.cpp b/lib/Frontend/InitPreprocessor.cpp index 75e475aa37..15ea9015a2 100644 --- a/lib/Frontend/InitPreprocessor.cpp +++ b/lib/Frontend/InitPreprocessor.cpp @@ -492,10 +492,10 @@ void clang::InitializePreprocessor(Preprocessor &PP, // Process -include directives. for (PreprocessorOptions::include_iterator I = InitOpts.include_begin(), E = InitOpts.include_end(); I != E; ++I) { - if (I->second) // isPTH - AddImplicitIncludePTH(PredefineBuffer, PP, I->first); + if (*I == InitOpts.getImplicitPTHInclude()) + AddImplicitIncludePTH(PredefineBuffer, PP, *I); else - AddImplicitInclude(PredefineBuffer, I->first); + AddImplicitInclude(PredefineBuffer, *I); } // Null terminate PredefinedBuffer and add it. diff --git a/tools/clang-cc/clang-cc.cpp b/tools/clang-cc/clang-cc.cpp index 74a8363837..c7fa4c486d 100644 --- a/tools/clang-cc/clang-cc.cpp +++ b/tools/clang-cc/clang-cc.cpp @@ -1135,9 +1135,9 @@ static void InitializePreprocessorOptions(PreprocessorOptions &InitOpts) { if (!ImplicitIncludes.empty() && Ptr >= &ImplicitIncludes[0] && Ptr <= &ImplicitIncludes[ImplicitIncludes.size()-1]) { - InitOpts.addInclude(*Ptr, false); + InitOpts.addInclude(*Ptr); } else if (Ptr == &ImplicitIncludePTH) { - InitOpts.addInclude(*Ptr, true); + InitOpts.addInclude(*Ptr); } else { // We end up here when we're producing preprocessed output and // we loaded a PCH file. In this case, just include the header @@ -1145,7 +1145,7 @@ static void InitializePreprocessorOptions(PreprocessorOptions &InitOpts) { assert(Ptr == &ImplicitIncludePCH); std::string OriginalFile = PCHReader::getOriginalSourceFile(*Ptr); if (!OriginalFile.empty()) { - InitOpts.addInclude(OriginalFile, false); + InitOpts.addInclude(OriginalFile); InitOpts.setImplicitPCHInclude(""); } }