Index: clang/include/clang/Lex/ModuleMap.h =================================================================== --- clang/include/clang/Lex/ModuleMap.h +++ clang/include/clang/Lex/ModuleMap.h @@ -110,6 +110,10 @@ llvm::StringMap> PendingLinkAsModule; public: + const LangOptions getLangOpts() { + return LangOpts; + } + /// Use PendingLinkAsModule information to mark top level link names that /// are going to be replaced by export_as aliases. void resolveLinkAsDependencies(Module *Mod); Index: clang/lib/Lex/HeaderSearch.cpp =================================================================== --- clang/lib/Lex/HeaderSearch.cpp +++ clang/lib/Lex/HeaderSearch.cpp @@ -282,7 +282,8 @@ // Load all module maps in the immediate subdirectories of this search // directory. - loadSubdirectoryModuleMaps(SearchDirs[Idx]); + if (ModMap.getLangOpts().ObjC1) + loadSubdirectoryModuleMaps(SearchDirs[Idx]); // Look again for the module. Module = ModMap.findModule(ModuleName);