]> granicus.if.org Git - clang/commit
Reapply r336660: [Modules] Autoload subdirectory modulemaps with specific LangOpts
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Wed, 18 Jul 2018 23:21:19 +0000 (23:21 +0000)
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Wed, 18 Jul 2018 23:21:19 +0000 (23:21 +0000)
commit3264f7f496b40d3348ee9dc1be5c0c577348ac8c
treebfa10b11881c0e8485ab8f4ad76632be9cbd9c49
parent580f7daabc7696d50ad09d9643b2afeadbd387d8
Reapply r336660: [Modules] Autoload subdirectory modulemaps with specific LangOpts

Summary:
Reproducer and errors:
https://bugs.llvm.org/show_bug.cgi?id=37878

lookupModule was falling back to loadSubdirectoryModuleMaps when it couldn't
find ModuleName in (proper) search paths. This was causing iteration over all
files in the search path subdirectories for example "/usr/include/foobar" in
bugzilla case.

Users don't expect Clang to load modulemaps in subdirectories implicitly, and
also the disk access is not cheap.

if (AllowExtraModuleMapSearch) true with ObjC with @import ModuleName.

Reviewers: rsmith, aprantl, bruno

Subscribers: cfe-commits, teemperor, v.g.vassilev

Differential Revision: https://reviews.llvm.org/D48367

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@337430 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Lex/HeaderSearch.h
lib/Frontend/CompilerInstance.cpp
lib/Lex/HeaderSearch.cpp
lib/Serialization/ASTReader.cpp
test/Modules/Inputs/autoload-subdirectory/a.h [new file with mode: 0644]
test/Modules/Inputs/autoload-subdirectory/b.h [new file with mode: 0644]
test/Modules/Inputs/autoload-subdirectory/c.h [new file with mode: 0644]
test/Modules/Inputs/autoload-subdirectory/include/module.modulemap [new file with mode: 0644]
test/Modules/Inputs/autoload-subdirectory/module.modulemap [new file with mode: 0644]
test/Modules/autoload-subdirectory.cpp [new file with mode: 0644]