r336920 - Revert "[modules] Fix 37878; Autoload subdirectory modulemaps with specific LangOpts"
Bruno Cardoso Lopes via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 12 10:38:49 PDT 2018
Author: bruno
Date: Thu Jul 12 10:38:48 2018
New Revision: 336920
URL: http://llvm.org/viewvc/llvm-project?rev=336920&view=rev
Log:
Revert "[modules] Fix 37878; Autoload subdirectory modulemaps with specific LangOpts"
This reverts commit f40124d4f05ecf4f880cf4e8f26922d861f705f3 / r336660.
This change shouldn't be affecting `@import` behavior, but turns out it is:
https://ci.swift.org/view/swift-master-next/job/oss-swift-incremental-RA-osx-master-next/2800/consoleFull#-12570166563122a513-f36a-4c87-8ed7-cbc36a1ec144
Working on a reduced testcase for this, reverting in the meantime.
rdar://problem/42102222
Removed:
cfe/trunk/test/Modules/Inputs/autoload-subdirectory/a.h
cfe/trunk/test/Modules/Inputs/autoload-subdirectory/b.h
cfe/trunk/test/Modules/Inputs/autoload-subdirectory/c.h
cfe/trunk/test/Modules/Inputs/autoload-subdirectory/include/module.modulemap
cfe/trunk/test/Modules/Inputs/autoload-subdirectory/module.modulemap
cfe/trunk/test/Modules/autoload-subdirectory.cpp
Modified:
cfe/trunk/include/clang/Lex/HeaderSearch.h
cfe/trunk/lib/Frontend/CompilerInstance.cpp
cfe/trunk/lib/Lex/HeaderSearch.cpp
cfe/trunk/lib/Serialization/ASTReader.cpp
Modified: cfe/trunk/include/clang/Lex/HeaderSearch.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/HeaderSearch.h?rev=336920&r1=336919&r2=336920&view=diff
==============================================================================
--- cfe/trunk/include/clang/Lex/HeaderSearch.h (original)
+++ cfe/trunk/include/clang/Lex/HeaderSearch.h Thu Jul 12 10:38:48 2018
@@ -529,12 +529,8 @@ public:
/// search directories to produce a module definition. If not, this lookup
/// will only return an already-known module.
///
- /// \param AllowExtraModuleMapSearch Whether we allow to search modulemaps
- /// in subdirectories.
- ///
/// \returns The module with the given name.
- Module *lookupModule(StringRef ModuleName, bool AllowSearch = true,
- bool AllowExtraModuleMapSearch = false);
+ Module *lookupModule(StringRef ModuleName, bool AllowSearch = true);
/// Try to find a module map file in the given directory, returning
/// \c nullptr if none is found.
@@ -599,12 +595,8 @@ private:
/// but for compatibility with some buggy frameworks, additional attempts
/// may be made to find the module under a related-but-different search-name.
///
- /// \param AllowExtraModuleMapSearch Whether we allow to search modulemaps
- /// in subdirectories.
- ///
/// \returns The module named ModuleName.
- Module *lookupModule(StringRef ModuleName, StringRef SearchName,
- bool AllowExtraModuleMapSearch = false);
+ Module *lookupModule(StringRef ModuleName, StringRef SearchName);
/// Retrieve a module with the given name, which may be part of the
/// given framework.
Modified: cfe/trunk/lib/Frontend/CompilerInstance.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CompilerInstance.cpp?rev=336920&r1=336919&r2=336920&view=diff
==============================================================================
--- cfe/trunk/lib/Frontend/CompilerInstance.cpp (original)
+++ cfe/trunk/lib/Frontend/CompilerInstance.cpp Thu Jul 12 10:38:48 2018
@@ -1653,10 +1653,8 @@ CompilerInstance::loadModule(SourceLocat
// Retrieve the cached top-level module.
Module = Known->second;
} else if (ModuleName == getLangOpts().CurrentModule) {
- // This is the module we're building.
- Module = PP->getHeaderSearchInfo().lookupModule(
- ModuleName, /*AllowSearch*/ true,
- /*AllowExtraModuleMapSearch*/ !IsInclusionDirective);
+ // This is the module we're building.
+ Module = PP->getHeaderSearchInfo().lookupModule(ModuleName);
/// FIXME: perhaps we should (a) look for a module using the module name
// to file map (PrebuiltModuleFiles) and (b) diagnose if still not found?
//if (Module == nullptr) {
@@ -1668,8 +1666,7 @@ CompilerInstance::loadModule(SourceLocat
Known = KnownModules.insert(std::make_pair(Path[0].first, Module)).first;
} else {
// Search for a module with the given name.
- Module = PP->getHeaderSearchInfo().lookupModule(ModuleName, true,
- !IsInclusionDirective);
+ Module = PP->getHeaderSearchInfo().lookupModule(ModuleName);
HeaderSearchOptions &HSOpts =
PP->getHeaderSearchInfo().getHeaderSearchOpts();
@@ -1746,8 +1743,7 @@ CompilerInstance::loadModule(SourceLocat
ImportLoc, ARRFlags)) {
case ASTReader::Success: {
if (Source != ModuleCache && !Module) {
- Module = PP->getHeaderSearchInfo().lookupModule(ModuleName, true,
- !IsInclusionDirective);
+ Module = PP->getHeaderSearchInfo().lookupModule(ModuleName);
if (!Module || !Module->getASTFile() ||
FileMgr->getFile(ModuleFileName) != Module->getASTFile()) {
// Error out if Module does not refer to the file in the prebuilt
@@ -1878,8 +1874,7 @@ CompilerInstance::loadModule(SourceLocat
PrivateModule, PP->getIdentifierInfo(Module->Name)->getTokenID());
PrivPath.push_back(std::make_pair(&II, Path[0].second));
- if (PP->getHeaderSearchInfo().lookupModule(PrivateModule, true,
- !IsInclusionDirective))
+ if (PP->getHeaderSearchInfo().lookupModule(PrivateModule))
Sub =
loadModule(ImportLoc, PrivPath, Visibility, IsInclusionDirective);
if (Sub) {
Modified: cfe/trunk/lib/Lex/HeaderSearch.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/HeaderSearch.cpp?rev=336920&r1=336919&r2=336920&view=diff
==============================================================================
--- cfe/trunk/lib/Lex/HeaderSearch.cpp (original)
+++ cfe/trunk/lib/Lex/HeaderSearch.cpp Thu Jul 12 10:38:48 2018
@@ -198,15 +198,14 @@ std::string HeaderSearch::getCachedModul
return Result.str().str();
}
-Module *HeaderSearch::lookupModule(StringRef ModuleName, bool AllowSearch,
- bool AllowExtraModuleMapSearch) {
+Module *HeaderSearch::lookupModule(StringRef ModuleName, bool AllowSearch) {
// Look in the module map to determine if there is a module by this name.
Module *Module = ModMap.findModule(ModuleName);
if (Module || !AllowSearch || !HSOpts->ImplicitModuleMaps)
return Module;
StringRef SearchName = ModuleName;
- Module = lookupModule(ModuleName, SearchName, AllowExtraModuleMapSearch);
+ Module = lookupModule(ModuleName, SearchName);
// The facility for "private modules" -- adjacent, optional module maps named
// module.private.modulemap that are supposed to define private submodules --
@@ -217,14 +216,13 @@ Module *HeaderSearch::lookupModule(Strin
// could force building unwanted dependencies into the parent module and cause
// dependency cycles.
if (!Module && SearchName.consume_back("_Private"))
- Module = lookupModule(ModuleName, SearchName, AllowExtraModuleMapSearch);
+ Module = lookupModule(ModuleName, SearchName);
if (!Module && SearchName.consume_back("Private"))
- Module = lookupModule(ModuleName, SearchName, AllowExtraModuleMapSearch);
+ Module = lookupModule(ModuleName, SearchName);
return Module;
}
-Module *HeaderSearch::lookupModule(StringRef ModuleName, StringRef SearchName,
- bool AllowExtraModuleMapSearch) {
+Module *HeaderSearch::lookupModule(StringRef ModuleName, StringRef SearchName) {
Module *Module = nullptr;
// Look through the various header search paths to load any available module
@@ -283,9 +281,8 @@ Module *HeaderSearch::lookupModule(Strin
continue;
// Load all module maps in the immediate subdirectories of this search
- // directory if ModuleName was from @import.
- if (AllowExtraModuleMapSearch)
- loadSubdirectoryModuleMaps(SearchDirs[Idx]);
+ // directory.
+ loadSubdirectoryModuleMaps(SearchDirs[Idx]);
// Look again for the module.
Module = ModMap.findModule(ModuleName);
Modified: cfe/trunk/lib/Serialization/ASTReader.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTReader.cpp?rev=336920&r1=336919&r2=336920&view=diff
==============================================================================
--- cfe/trunk/lib/Serialization/ASTReader.cpp (original)
+++ cfe/trunk/lib/Serialization/ASTReader.cpp Thu Jul 12 10:38:48 2018
@@ -2626,9 +2626,7 @@ ASTReader::ReadControlBlock(ModuleFile &
"MODULE_DIRECTORY found before MODULE_NAME");
// If we've already loaded a module map file covering this module, we may
// have a better path for it (relative to the current build).
- Module *M = PP.getHeaderSearchInfo().lookupModule(
- F.ModuleName, /*AllowSearch*/ true,
- /*AllowExtraModuleMapSearch*/ true);
+ Module *M = PP.getHeaderSearchInfo().lookupModule(F.ModuleName);
if (M && M->Directory) {
// If we're implicitly loading a module, the base directory can't
// change between the build and use.
Removed: cfe/trunk/test/Modules/Inputs/autoload-subdirectory/a.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/autoload-subdirectory/a.h?rev=336919&view=auto
==============================================================================
--- cfe/trunk/test/Modules/Inputs/autoload-subdirectory/a.h (original)
+++ cfe/trunk/test/Modules/Inputs/autoload-subdirectory/a.h (removed)
@@ -1,9 +0,0 @@
-#include "b.h"
-
-class foo {
- int x, y;
-
-public:
- foo(){};
- ~foo(){};
-};
Removed: cfe/trunk/test/Modules/Inputs/autoload-subdirectory/b.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/autoload-subdirectory/b.h?rev=336919&view=auto
==============================================================================
--- cfe/trunk/test/Modules/Inputs/autoload-subdirectory/b.h (original)
+++ cfe/trunk/test/Modules/Inputs/autoload-subdirectory/b.h (removed)
@@ -1 +0,0 @@
-class bar {};
Removed: cfe/trunk/test/Modules/Inputs/autoload-subdirectory/c.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/autoload-subdirectory/c.h?rev=336919&view=auto
==============================================================================
--- cfe/trunk/test/Modules/Inputs/autoload-subdirectory/c.h (original)
+++ cfe/trunk/test/Modules/Inputs/autoload-subdirectory/c.h (removed)
@@ -1,7 +0,0 @@
-class nyan {
- bool x, y;
-
-public:
- nyan(){};
- ~nyan(){};
-};
Removed: cfe/trunk/test/Modules/Inputs/autoload-subdirectory/include/module.modulemap
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/autoload-subdirectory/include/module.modulemap?rev=336919&view=auto
==============================================================================
--- cfe/trunk/test/Modules/Inputs/autoload-subdirectory/include/module.modulemap (original)
+++ cfe/trunk/test/Modules/Inputs/autoload-subdirectory/include/module.modulemap (removed)
@@ -1,3 +0,0 @@
-module a { header "a.h" }
-module b { header "b.h" }
-module c { header "c.h" }
Removed: cfe/trunk/test/Modules/Inputs/autoload-subdirectory/module.modulemap
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/Inputs/autoload-subdirectory/module.modulemap?rev=336919&view=auto
==============================================================================
--- cfe/trunk/test/Modules/Inputs/autoload-subdirectory/module.modulemap (original)
+++ cfe/trunk/test/Modules/Inputs/autoload-subdirectory/module.modulemap (removed)
@@ -1,3 +0,0 @@
-module a { header "a.h" }
-module b { header "b.h" }
-module c { header "c.h" }
Removed: cfe/trunk/test/Modules/autoload-subdirectory.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/autoload-subdirectory.cpp?rev=336919&view=auto
==============================================================================
--- cfe/trunk/test/Modules/autoload-subdirectory.cpp (original)
+++ cfe/trunk/test/Modules/autoload-subdirectory.cpp (removed)
@@ -1,10 +0,0 @@
-// RUN: %clang_cc1 -fmodules -fmodule-name=Foo -I %S/Inputs/autoload-subdirectory/ %s -verify
-// expected-no-diagnostics
-
-#include "a.h"
-#import "c.h"
-
-int main() {
- foo neko;
- return 0;
-}
More information about the cfe-commits
mailing list