]> granicus.if.org Git - clang/commitdiff
I predict that HeaderSearch will need the ability to generate
authorDouglas Gregor <dgregor@apple.com>
Fri, 11 Nov 2011 00:35:06 +0000 (00:35 +0000)
committerDouglas Gregor <dgregor@apple.com>
Fri, 11 Nov 2011 00:35:06 +0000 (00:35 +0000)
diagnostics in the future. Make it so.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144347 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Lex/HeaderSearch.h
lib/Frontend/ASTUnit.cpp
lib/Frontend/CompilerInstance.cpp
lib/Lex/HeaderSearch.cpp

index 84d59f793bbb80177bca8f7bd36ba8587a0e23c9..0b2137385802128dd11d12a6de16f707f53336d4 100644 (file)
@@ -21,7 +21,8 @@
 #include <vector>
 
 namespace clang {
-
+  
+class DiagnosticsEngine;  
 class ExternalIdentifierLookup;
 class FileEntry;
 class FileManager;
@@ -118,6 +119,7 @@ public:
 /// file referenced by a #include or #include_next, (sub-)framework lookup, etc.
 class HeaderSearch {
   FileManager &FileMgr;
+  DiagnosticsEngine &Diags;
   /// #include search path information.  Requests for #include "x" search the
   /// directory of the #including file first, then each directory in SearchDirs
   /// consecutively. Requests for <x> search the current dir first, then each
@@ -180,7 +182,7 @@ class HeaderSearch {
   explicit HeaderSearch(const HeaderSearch&);
   void operator=(const HeaderSearch&);
 public:
-  HeaderSearch(FileManager &FM);
+  HeaderSearch(FileManager &FM, DiagnosticsEngine &Diags);
   ~HeaderSearch();
 
   FileManager &getFileMgr() const { return FileMgr; }
index 2496f72bea9b2921e21589de8cd80790d06ab416..0b9c37a2237280be9d9e19c5f72f854d36ab82d2 100644 (file)
@@ -664,7 +664,8 @@ ASTUnit *ASTUnit::LoadFromASTFile(const std::string &Filename,
   AST->FileMgr = new FileManager(FileSystemOpts);
   AST->SourceMgr = new SourceManager(AST->getDiagnostics(),
                                      AST->getFileManager());
-  AST->HeaderInfo.reset(new HeaderSearch(AST->getFileManager()));
+  AST->HeaderInfo.reset(new HeaderSearch(AST->getFileManager(),
+                                         AST->getDiagnostics()));
   
   for (unsigned I = 0; I != NumRemappedFiles; ++I) {
     FilenameOrMemBuf fileOrBuf = RemappedFiles[I].second;
index f4d0a15f23938f94cd348846c92f83178634fa33..0e3b25168f062c7b696062f30e7afa0d5740ff45 100644 (file)
@@ -250,7 +250,8 @@ void CompilerInstance::createPreprocessor() {
     PTHMgr = PTHManager::Create(PPOpts.TokenCache, getDiagnostics());
 
   // Create the Preprocessor.
-  HeaderSearch *HeaderInfo = new HeaderSearch(getFileManager());
+  HeaderSearch *HeaderInfo = new HeaderSearch(getFileManager(), 
+                                              getDiagnostics());
   PP = new Preprocessor(getDiagnostics(), getLangOpts(), &getTarget(),
                         getSourceManager(), *HeaderInfo, *this, PTHMgr,
                         /*OwnsHeaderSearch=*/true);
index 931145a8d655e7084ca51453c32e26955df0dc9e..837b913d475103f34a07bc82c3a50411e8b78c83 100644 (file)
@@ -36,8 +36,9 @@ HeaderFileInfo::getControllingMacro(ExternalIdentifierLookup *External) {
 
 ExternalHeaderFileInfoSource::~ExternalHeaderFileInfoSource() {}
 
-HeaderSearch::HeaderSearch(FileManager &FM)
-    : FileMgr(FM), FrameworkMap(64) {
+HeaderSearch::HeaderSearch(FileManager &FM, DiagnosticsEngine &Diags)
+  : FileMgr(FM), Diags(Diags), FrameworkMap(64) 
+{
   AngledDirIdx = 0;
   SystemDirIdx = 0;
   NoCurDirSearch = false;