llvm-project/clang/lib/Basic
Bruno Cardoso Lopes 8587dfd94b Reapply r321781: [Modules] Allow modules specified by -fmodule-map-file to shadow implicitly found ones
When modules come from module map files explicitly specified by
-fmodule-map-file= arguments, allow those to override/shadow modules
with the same name that are found implicitly by header search. If such a
module is looked up by name (e.g. @import), we will always find the one
from -fmodule-map-file. If we try to use a shadowed module by including
one of its headers report an error.

This enables developers to force use of a specific copy of their module
to be used if there are multiple copies that would otherwise be visible,
for example if they develop modules that are installed in the default
search paths.

Patch originally by Ben Langmuir,
http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20151116/143425.html

Based on cfe-dev discussion:
http://lists.llvm.org/pipermail/cfe-dev/2015-November/046164.html

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

rdar://problem/23612102

llvm-svn: 321855
2018-01-05 02:33:18 +00:00
..
Targets Revert r321504 "[X86] Don't accidentally enable PKU on cannon lake and icelake or CLWB on cannonlake." 2017-12-29 06:39:16 +00:00
Attributes.cpp Add #pragma clang attribute 2017-04-18 14:33:39 +00:00
Builtins.cpp [OpenMP] Implement omp_is_initial_device() as builtin 2017-10-17 14:28:14 +00:00
CMakeLists.txt Allow specifying sanitizers in blacklists 2017-09-25 22:11:12 +00:00
CharInfo.cpp
Cuda.cpp [CUDA] Print an error if you try to compile with < sm_30 on CUDA 9. 2017-10-25 21:32:06 +00:00
Diagnostic.cpp Make DiagnosticIDs::getAllDiagnostics use std::vector. NFC. 2017-12-20 16:55:41 +00:00
DiagnosticIDs.cpp Make DiagnosticIDs::getAllDiagnostics use std::vector. NFC. 2017-12-20 16:55:41 +00:00
DiagnosticOptions.cpp [NFC] Header cleanup 2016-07-18 19:02:11 +00:00
FileManager.cpp Use VFS operations in FileManager::makeAbsolutePath. 2017-08-02 07:25:24 +00:00
FileSystemStatCache.cpp [VFS] Replace TimeValue usage with std::chrono 2016-11-09 10:52:22 +00:00
IdentifierTable.cpp [Basic] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-11-03 22:35:27 +00:00
LangOptions.cpp [Modules] Handle sanitizer feature mismatches when importing modules 2017-06-01 20:01:01 +00:00
MemoryBufferCache.cpp Reapply "Modules: Cache PCMs in memory and avoid a use-after-free" 2017-03-20 17:58:26 +00:00
Module.cpp Reapply r321781: [Modules] Allow modules specified by -fmodule-map-file to shadow implicitly found ones 2018-01-05 02:33:18 +00:00
ObjCRuntime.cpp Watch and TV OS: wire up basic ABI choices 2015-10-30 16:30:36 +00:00
OpenMPKinds.cpp [OpenMP] Initial implementation of code generation for pragma 'target teams distribute parallel for' on host 2018-01-03 21:12:44 +00:00
OperatorPrecedence.cpp [c++20] P0515R3: Parsing support and basic AST construction for operator <=>. 2017-12-14 15:16:18 +00:00
SanitizerBlacklist.cpp Allow specifying sanitizers in blacklists 2017-09-25 22:11:12 +00:00
SanitizerSpecialCaseList.cpp Update SanitizerSpecialCaseList to use renamed functions in base class. 2017-11-07 21:16:37 +00:00
Sanitizers.cpp Pull trivial SanitizerSet methods into the header. 2015-07-14 15:34:19 +00:00
SourceLocation.cpp Revert "Revert "[NFC] Refactor DiagnosticRenderer to use FullSourceLoc"" 2017-06-27 09:50:38 +00:00
SourceManager.cpp Remove llvm::MemoryBuffer const_casts 2017-12-20 11:34:38 +00:00
TargetInfo.cpp [OpenCL] Fix layering violation by getOpenCLTypeAddrSpace 2017-12-06 10:11:28 +00:00
Targets.cpp [MINGW] normalize WIN32 macros 2017-11-21 11:28:29 +00:00
Targets.h [MINGW] normalize WIN32 macros 2017-11-21 11:28:29 +00:00
TokenKinds.cpp
Version.cpp
VersionTuple.cpp
VirtualFileSystem.cpp [VirtualFileSystem] Support creating directories then adding files inside 2017-11-16 19:34:08 +00:00
Warnings.cpp
XRayLists.cpp Allow specifying sanitizers in blacklists 2017-09-25 22:11:12 +00:00