From d62b91c07b922f310858c453e77c5094693037af Mon Sep 17 00:00:00 2001 From: John Thompson Date: Wed, 16 Apr 2014 00:07:06 +0000 Subject: [PATCH] Fixed problem with exclude header. The exclude header argument needs to be relative to the module.map file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206342 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Lex/ModuleMap.cpp | 22 ------------------- test/Modules/Inputs/exclude-header/module.map | 2 +- 2 files changed, 1 insertion(+), 23 deletions(-) diff --git a/lib/Lex/ModuleMap.cpp b/lib/Lex/ModuleMap.cpp index 810fcf0547..3381144192 100644 --- a/lib/Lex/ModuleMap.cpp +++ b/lib/Lex/ModuleMap.cpp @@ -1006,8 +1006,6 @@ namespace clang { void parseConflict(); void parseInferredModuleDecl(bool Framework, bool Explicit); bool parseOptionalAttributes(Attributes &Attrs); - - const DirectoryEntry *getOverriddenHeaderSearchDir(); public: explicit ModuleMapParser(Lexer &L, SourceManager &SourceMgr, @@ -1628,10 +1626,6 @@ void ModuleMapParser::parseHeaderDecl(MMToken::TokenKind LeadingToken, if (llvm::sys::path::is_absolute(Header.FileName)) { PathName = Header.FileName; File = SourceMgr.getFileManager().getFile(PathName); - } else if (const DirectoryEntry *Dir = getOverriddenHeaderSearchDir()) { - PathName = Dir->getName(); - llvm::sys::path::append(PathName, Header.FileName); - File = SourceMgr.getFileManager().getFile(PathName); } else { // Search for the header file within the search directory. PathName = Directory->getName(); @@ -2184,22 +2178,6 @@ bool ModuleMapParser::parseOptionalAttributes(Attributes &Attrs) { return HadError; } -/// \brief If there is a specific header search directory due the presence -/// of an umbrella directory, retrieve that directory. Otherwise, returns null. -const DirectoryEntry *ModuleMapParser::getOverriddenHeaderSearchDir() { - for (Module *Mod = ActiveModule; Mod; Mod = Mod->Parent) { - // If we have an umbrella directory, use that. - if (Mod->hasUmbrellaDir()) - return Mod->getUmbrellaDir(); - - // If we have a framework directory, stop looking. - if (Mod->IsFramework) - return 0; - } - - return 0; -} - /// \brief Parse a module map file. /// /// module-map-file: diff --git a/test/Modules/Inputs/exclude-header/module.map b/test/Modules/Inputs/exclude-header/module.map index 2aa1024458..2563ef9dc9 100644 --- a/test/Modules/Inputs/exclude-header/module.map +++ b/test/Modules/Inputs/exclude-header/module.map @@ -1,3 +1,3 @@ -module x { umbrella "x" exclude header "x/bad.h" exclude header "y/b.h" module * {} } +module x { umbrella "x" exclude header "x/bad.h" module * {} } module y { umbrella "y" module * {} } module bad { header "x/bad.h" } -- 2.40.0