]> granicus.if.org Git - clang/commitdiff
PreprocessorOptions: Get rid of unnecessary 'isPTH' flag for include entries.
authorDaniel Dunbar <daniel@zuster.org>
Tue, 10 Nov 2009 23:53:43 +0000 (23:53 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Tue, 10 Nov 2009 23:53:43 +0000 (23:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86757 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Frontend/PreprocessorOptions.h
lib/Frontend/InitPreprocessor.cpp
tools/clang-cc/clang-cc.cpp

index d2af829c6d5f965c2fdc04573e2153b514c4b904..fc400faa108bfde69c94380b7d812897db793fed 100644 (file)
@@ -10,6 +10,7 @@
 #ifndef LLVM_CLANG_FRONTEND_PREPROCESSOROPTIONS_H_
 #define LLVM_CLANG_FRONTEND_PREPROCESSOROPTIONS_H_
 
+#include "llvm/ADT/StringRef.h"
 #include <string>
 #include <vector>
 
@@ -22,7 +23,7 @@ class LangOptions;
 /// used in preprocessor initialization to InitializePreprocessor().
 class PreprocessorOptions {
   std::vector<std::pair<std::string, bool/*isUndef*/> > Macros;
-  std::vector<std::pair<std::string, bool/*isPTH*/> > Includes;
+  std::vector<std::string> Includes;
   std::vector<std::string> 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<std::pair<std::string,
-                                bool> >::const_iterator include_iterator;
+  typedef std::vector<std::string>::const_iterator include_iterator;
   include_iterator include_begin() const { return Includes.begin(); }
   include_iterator include_end() const { return Includes.end(); }
 
index 75e475aa37fd6ca5926180a3cc0b16e676ce72fe..15ea9015a2de36ab9e8856f580c1876d91d7bf1a 100644 (file)
@@ -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.
index 74a8363837c21bab0a7f457a77066da24737be31..c7fa4c486d424eabb082972de3b9617a66b728cb 100644 (file)
@@ -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("");
         }
       }