3ea9e33ea25e0c2b12db56418ba3f994eb662c04 |
|
08-Apr-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master clang for rebase to r233350 Change-Id: I12d4823f10bc9e445b8b86e7721b71f98d1df442
/external/clang/lib/Lex/ModuleMap.cpp
|
0e2c34f92f00628d48968dfea096d36381f494cb |
|
23-Mar-2015 |
Stephen Hines <srhines@google.com> |
Update aosp/master clang for rebase to r230699. Change-Id: I6a546ab3d4ae37119eebb735e102cca4f80ab520
/external/clang/lib/Lex/ModuleMap.cpp
|
176edba5311f6eff0cad2631449885ddf4fbc9ea |
|
01-Dec-2014 |
Stephen Hines <srhines@google.com> |
Update aosp/master Clang for rebase to r222490. Change-Id: Ic557ac55e97fbf6ee08771c7b7c3594777b0aefd
/external/clang/lib/Lex/ModuleMap.cpp
|
c568f1e98938584c0ef0b12ae5018ff7d90a4072 |
|
21-Jul-2014 |
Stephen Hines <srhines@google.com> |
Update Clang for rebase to r212749. This also fixes a small issue with arm_neon.h not being generated always. Includes a cherry-pick of: r213450 - fixes mac-specific header issue r213126 - removes a default -Bsymbolic on Android Change-Id: I2a790a0f5d3b2aab11de596fc3a74e7cbc99081d
/external/clang/lib/Lex/ModuleMap.cpp
|
6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update Clang for 3.5 rebase (r209713). Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
/external/clang/lib/Lex/ModuleMap.cpp
|
651f13cea278ec967336033dd032faef0e9fc2ec |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Updated to Clang 3.5a. Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
/external/clang/lib/Lex/ModuleMap.cpp
|
5794b53ad5b38b53c9eaf3a172354e63081ceb2f |
|
28-Oct-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Allow a new syntax in a module requires-declaration: requires ! feature The purpose of this is to allow (for instance) the module map for /usr/include to exclude <tgmath.h> and <complex.h> when building in C++ (these headers are instead provided by the C++ standard library in this case, and the glibc C <tgmath.h> header would otherwise try to include <complex.h>, resulting in a module cycle). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193549 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
ee0cd37fe4a9f4e2ee73ae34cf93c410cb299a82 |
|
24-Oct-2013 |
Manuel Klimek <klimek@google.com> |
Use the same SourceManager for ModuleMaps and compilations. This allows using virtual file mappings on the original SourceManager to map in virtual module.map files. Without this patch, the ModuleMap search will find a module.map file (as the FileEntry exists in the FileManager), but will be unable to get the content from the SourceManager (as ModuleMap previously created its own SourceManager). Two problems needed to be fixed which this patch exposed: 1. Storing the inferred module map When writing out a module, the ASTWriter stores the names of the files in the main source manager; when loading the AST again, the ASTReader errs out if such a file is found missing, unless it is overridden. Previously CompilerInstance's compileModule method would store the inferred module map to a temporary file; the problem with this approach is that now that the module map is handled by the main source manager, the ASTWriter stores the name of the temporary module map as source to the compilation; later, when the module is loaded, the temporary file has already been deleted, which leads to a compilation error. This patch changes the inferred module map to instead inject a virtual file into the source manager. This both saves some disk IO, and works with how the ASTWriter/ASTReader handle overridden source files. 2. Changing test input in test/Modules/Inputs/* Now that the module map file is handled by the main source manager, the VerifyDiagnosticConsumer will not ignore diagnostics created while parsing the module map file. The module test test/Modules/renamed.m uses -I test/Modules/Inputs and triggers recursive loading of all module maps in test/Modules/Inputs, some of which had conflicting names, thus leading errors while parsing the module maps. Those diagnostics already occur on trunk, but before this patch they would not break the test, as they were ignored by the VerifyDiagnosticConsumer. This patch thus changes the module maps that have been recently introduced which broke the invariant of compatible modules maps in test/Modules/Inputs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
c641709607d45bf97772e925647db6c94866c50a |
|
22-Oct-2013 |
Daniel Jasper <djasper@google.com> |
Allow a header to be part of multiple modules. This patch changes two things: a) Allow a header to be part of multiple modules. The reasoning is that in existing codebases that have a module-like build system, the same headers might be used in several build targets. Simple reasons might be that they defined different classes that are declared in the same header. Supporting a header as a part of multiple modules will make the transistion easier for those cases. A later step in clang can then determine whether the two modules are actually compatible and can be merged and error out appropriately. The later check is similar to what needs to be done for template specializations anyway. b) Allow modules to be stored in a directory tree separate from the headers they describe. Review: http://llvm-reviews.chandlerc.com/D1951 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193151 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
733bac2b9a3d703310e228c6c395547a0a583305 |
|
24-Sep-2013 |
Daniel Jasper <djasper@google.com> |
Fix uninitialized value bug discovered buy msan buildbot. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191292 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
ddd2dfc1d3f4a36cbe8cd775c588623a17049f9f |
|
24-Sep-2013 |
Daniel Jasper <djasper@google.com> |
Module use declarations (II) Review: http://llvm-reviews.chandlerc.com/D1546. I have picked up this patch form Lawrence (http://llvm-reviews.chandlerc.com/D1063) and did a few changes. From the original change description (updated as appropriate): This patch adds a check that ensures that modules only use modules they have so declared. To this end, it adds a statement on intended module use to the module.map grammar: use module-id A module can then only use headers from other modules if it 'uses' them. This enforcement is off by default, but may be turned on with the new option -fmodules-decluse. When enforcing the module semantics, we also need to consider a source file part of a module. This is achieved with a compiler option -fmodule-name=<module-id>. The compiler at present only applies restrictions to the module directly being built. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
0f599acfd685437d1344f82ce363f994b0729a2f |
|
11-Sep-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Simplify code with the in place path::native. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190515 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
5f0a3524d184f7fcda856aaa17686064e45cacd3 |
|
11-Sep-2013 |
Daniel Jasper <djasper@google.com> |
Support for modular module-map-files This patch is the first step to make module-map-files modular (instead of requiring a single "module.map"-file per include directory). This step adds a new "extern module" declaration that enables module-map-files to reference one another along with a very basic implementation. The next steps are: * Combine this with the use-declaration (from http://llvm-reviews.chandlerc.com/D1546) in order to only load module map files required for a specific compilation. * Add an additional flag to start with a specific module-map-file (instead of requiring there to be at least one "module.map"). Review: http://llvm-reviews.chandlerc.com/D1637 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190497 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
ceb6dc8e5afbd8e4dad7aaa1948994965fd8ff2e |
|
28-Jun-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Use the multiple argument form of path::append. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185164 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
8f5d7d1d1f990f174c7f2682271a83acf64dd93d |
|
21-Jun-2013 |
Douglas Gregor <dgregor@apple.com> |
[Modules] If a module map resides in a system header directory, treat it as a system module. This prevents -pedantic from causing warnings in the system headers used to create modules. Fixes <rdar://problem/14201171>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184560 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
bc3f628815b3841dc99109e7f67f9afa7793bc94 |
|
20-Jun-2013 |
Lawrence Crowl <crowl@google.com> |
This patch adds new private headers to the module map. Private headers may be included from within the module, but not from outside the module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
8229d22e6449851b89361bf2f41804557328be63 |
|
12-Jun-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Include Path.h instead of PathV2.h. I am about to move PathV2.h to Path.h. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183795 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
30a16f1383b56cb71be251999a577b2e37db2ce0 |
|
11-May-2013 |
Douglas Gregor <dgregor@apple.com> |
[Modules] Make r180934 more efficient by only loading top-level module maps in system header directories. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181643 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
d3220dbeeadc4ac54ceecea8cf63f8d8be291d2a |
|
09-May-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[modules] When building a module, make sure we don't serialize out HeaderFileInfo for headers not belonging to the module. After r180934 we may initiate module map parsing for modules not related to the module what we are building, make sure we ignore the header file info of headers from such modules. First part of rdar://13840148 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181489 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
a4a90cabfa15c900016a7cfaea51a6d4e8ebf4db |
|
04-May-2013 |
Douglas Gregor <dgregor@apple.com> |
When building a module, forward diagnostics to the outer diagnostic consumer. Previously, we would clone the current diagnostic consumer to produce a new diagnostic consumer to use when building a module. The problem here is that we end up losing diagnostics for important diagnostic consumers, such as serialized diagnostics (where we'd end up with two diagnostic consumers writing the same output file). With forwarding, the diagnostics from all of the different modules being built get forwarded to the one serialized-diagnostic consumer and are emitted in a sane way. Fixes <rdar://problem/13663996>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181067 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
db3910be2e30b3fa00474f0e1c0780f544469dee |
|
02-May-2013 |
Douglas Gregor <dgregor@apple.com> |
When looking for the module associated with one of our magical builtin headers, speculatively load module maps. The "magical" builtin headers are the headers we provide as part of the C standard library, which typically comes from /usr/include. We essentially merge our headers into that location (due to cyclic dependencies). This change makes sure that, when header search finds one of our builtin headers, we figure out which module it actually lives in. This case is fairly rare; one ends up having to include one of the few built-in C headers we provide before including anything from /usr/include to trigger it. Fixes <rdar://problem/13787184>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
906d66acc5cf2679453e10a4f0a67feedd765b21 |
|
20-Mar-2013 |
Douglas Gregor <dgregor@apple.com> |
<rdar://problem/12368093> Extend module maps with a 'conflict' declaration, and warn when a newly-imported module conflicts with an already-imported module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
63a726870b486e0470c3a4b11cf62bab8be00b73 |
|
20-Mar-2013 |
Douglas Gregor <dgregor@apple.com> |
<rdar://problem/10796651> Introduce configuration macros into module maps. Configuration macros are macros that are intended to alter how a module works, such that we need to build different module variants for different values of these macros. A module can declare its configuration macros, in which case we will complain if the definition of a configation macro on the command line (or lack thereof) differs from the current preprocessor state at the point where the module is imported. This should eliminate some surprises when enabling modules, because "#define CONFIG_MACRO ..." followed by "#include <module/header.h>" would silently ignore the CONFIG_MACRO setting. At least it will no longer be silent about it. Configuration macros are eventually intended to help reduce the number of module variants that need to be built. When the list of configuration macros for a module is exhaustive, we only need to consider the settings for those macros when building/finding the module, which can help isolate modules for various project-specific -D flags that should never affect how modules are build (but currently do). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177466 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
55ea75bf61a5d76f6453513d937944ce68181c6a |
|
13-Mar-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[Modules] Don't eagerly load and associate all the module header files. In a module-enabled Cocoa PCH file, we spend a lot of time stat'ing the headers in order to associate the FileEntries with their modules and support implicit module import. Use a more lazy scheme by enhancing HeaderInfoTable to store extra info about the module that a header belongs to, and associate it with its module only when there is a request for loading the header info for a particular file. Part of rdar://13391765 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176976 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
c1d22393628a145e54396c0ac66e9625d13a7658 |
|
13-Mar-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[Modules] Resolve top-headers of modules lazily. This allows resolving top-header filenames of modules to FileEntries when we need them, not eagerly. Note that that this breaks ABI for libclang functions clang_Module_getTopLevelHeader / clang_Module_getNumTopLevelHeaders but this is fine because they are experimental and not widely used yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
0be5e567e3a48592fd6b11f88cc77efb20c76f26 |
|
19-Feb-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[modules] Const'ify some functions of ModuleMap. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175552 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
3f6f51e28231f65de9c2dd150a2d757b2162cfa3 |
|
08-Feb-2013 |
Jordan Rose <jordan_rose@apple.com> |
Excise <cctype> from Clang (except clang-tblgen) in favor of CharInfo.h. Nearly all of these changes are one-to-one replacements; the few that aren't have to do with custom identifier validation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174768 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
adeb7822cb7947194fef0e12d2d6583ccb8240b5 |
|
26-Jan-2013 |
Dmitri Gribenko <gribozavr@gmail.com> |
<limits.h> includes <linux/limits.h> on Linux, no need to special-case it git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
713b7c011869f177dc76e6df4f7f44b1bd073bb0 |
|
26-Jan-2013 |
Douglas Gregor <dgregor@apple.com> |
Since we're stuck with realpath for the header <-> module mapping, factor the realpath calls into FileManager::getCanonicalName() so we can cache the results of this epically slow operation. 5% speedup on my modules test, and realpath drops out of the profile. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
3cc6277a3dd4986af6422e41db18ba6efddbd800 |
|
23-Jan-2013 |
Douglas Gregor <dgregor@apple.com> |
Fix compilation on Linux, which defines PATH_MAX in a weird place, from Saleem Abdulrasool! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173208 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
8767dc29ec23f96e71658f760333bdf5d87283d5 |
|
14-Jan-2013 |
Douglas Gregor <dgregor@apple.com> |
Infer "link" lines for top-level frameworks. Essentially, a framework will have a shared library with the same name as its framework (and no suffix!) within its .framework directory. Detect this both when inferring the whole top-level framework and when parsing a module map. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172439 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
b6cbe517237c3c223beb064d60d5b49e56d65c06 |
|
14-Jan-2013 |
Douglas Gregor <dgregor@apple.com> |
Implement parsing, AST, (de-)serialization, and placeholder global metadata for linking against the libraries/frameworks for imported modules. The module map language is extended with a new "link" directive that specifies what library or framework to link against when a module is imported, e.g., link "clangAST" or link framework "MyFramework" Importing the corresponding module (or any of its submodules) will eventually link against the named library/framework. For now, I've added some placeholder global metadata that encodes the imported libraries/frameworks, so that we can test that this information gets through to the IR. The format of the data is still under discussion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172437 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
cfa88f893915ceb8ae4ce2f17c46c24a4d67502f |
|
12-Jan-2013 |
Dmitri Gribenko <gribozavr@gmail.com> |
Remove useless 'llvm::' qualifier from names like StringRef and others that are brought into 'clang' namespace by clang/Basic/LLVM.h git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
7005b907ea159c8e74e81f85269777429bc18d3c |
|
10-Jan-2013 |
Douglas Gregor <dgregor@apple.com> |
Rework the realpath nonsense for framework lookups to deal more uniformly with symlinks between top-level and embedded frameworks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172030 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
aa60f9cee8fa29cac1848de75ad48cdc0520e993 |
|
04-Jan-2013 |
Douglas Gregor <dgregor@apple.com> |
realpath'ify the mapping from header includes to module imports. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
ad017fa7a4df7389d245d02a49b3c79ed70bedb9 |
|
20-Dec-2012 |
Bill Wendling <isanbard@gmail.com> |
Revert r170500. It over-zealously converted *ALL* things named Attributes, which is wrong here. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170721 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
094dbf917127a1228147587076d59ca45b7c258d |
|
19-Dec-2012 |
Bill Wendling <isanbard@gmail.com> |
Rename the 'Attributes' class to 'Attribute'. It's going to represent a single attribute in the future. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170500 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
55fc873017f10f6f566b182b70f6fc22aefa3464 |
|
04-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Sort all of Clang's files under 'lib', and fix up the broken headers uncovered. This required manually correcting all of the incorrect main-module headers I could find, and running the new llvm/utils/sort_includes.py script over the files. I also manually added quite a few missing headers that were uncovered by shuffling the order or moving headers up to be main-module-headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169237 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
71f49f5d8fc3c4980bed4bb7790c8d0e50586d3b |
|
15-Nov-2012 |
Douglas Gregor <dgregor@apple.com> |
If an excluded header does not exist, just ignore it git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168077 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
b7ac5ac3faf70146707683a2ae041e8d53c3562a |
|
06-Nov-2012 |
Douglas Gregor <dgregor@apple.com> |
Remove C++11-isms I just introduced in r167482 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167483 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
82e52377bd76ed71e8c09edc5f2f452e388b16ad |
|
06-Nov-2012 |
Douglas Gregor <dgregor@apple.com> |
Introduce inferred framework modules into the module map file, allowing a module map to be placed one level above the '.framework' directories to specify that all .frameworks within that directory can be inferred as framework modules. One can also specifically exclude frameworks known not to work. This makes explicit (and more restricted) behavior modules have had "forever", where *any* .framework was assumed to be able to be built as a module. That's not necessarily true, so we white-list directories (with exclusions) when those directories have been audited. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167482 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
02c23ebf41ae2f70da0ba7337e05c51fbfe35f7f |
|
24-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Make DiagnosticOptions intrusively reference-counted, and make sure the various stakeholders bump up the reference count. In particular, the diagnostics engine now keeps the DiagnosticOptions object alive. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166508 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
9a022bb007a3e77e1ac1330f955a239cfb1dd0fb |
|
15-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Teach TargetInfo to hold on to the TargetOptions with which it was created. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
2b49d1f0ad790a8a5d514af1be211591a746cb73 |
|
15-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Introduce the notion of excluded headers into the module map description. Previously, one could emulate this behavior by placing the header in an always-unavailable submodule, but Argyrios guilted me into expressing this idea properly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165921 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
8b48e087bc0e022703d235fa6382551cfaa57ae6 |
|
12-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Sanitize the names of modules determined based on the names of headers or directories, to make sure that they are identifiers that are not keywords in any dialect. Fixes <rdar://problem/12489495>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165821 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
c7782d96c657eeb767bfea5117db49dc40e6356c |
|
05-Oct-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[Modules] Introduce Module::TopHeaders which is a set of top-level headers that are associated with a (sub)module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
98cfcbf2aeff03d40575ab79b03e6baeff4e3570 |
|
27-Sep-2012 |
Douglas Gregor <dgregor@apple.com> |
Following up on r164620, cope with symlinking from an embedded framework location out to a top-level framework. Such frameworks are not really embedded at all. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164774 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
c0b6dbe00f920593e60e38bfd7b77621aef307cc |
|
29-Mar-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Make ModuleMapParser own its TargetInfo, so it doesn't get leaked. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153648 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
99831e4677a7e2e051af636221694d60ba31fcdb |
|
06-Mar-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
User-defined literals: reject string and character UDLs in all places where the grammar requires a string-literal and not a user-defined-string-literal. The two constructs are still represented by the same TokenKind, in order to prevent a combinatorial explosion of different kinds of token. A flag on Token tracks whether a ud-suffix is present, in order to prevent clients from needing to look at the token's spelling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
c93dc7889644293e318e19d82830ea2acc45b678 |
|
20-Feb-2012 |
Dylan Noblesmith <nobled@dreamwidth.org> |
Basic: import IntrusiveRefCntPtr<> into clang namespace The class name is long enough without the llvm:: added. Also bring in RefCountedBase and RefCountedBaseVPTR. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150958 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
5bbc385ad2d8e487edfbc2756eaf4fb0b920cfe4 |
|
06-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Move instantiateTemplateAttribute into the sema namespace, make helpers static. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149864 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
f7ccbad5d9949e7ddd1cbef43d482553b811e026 |
|
05-Feb-2012 |
Dylan Noblesmith <nobled@dreamwidth.org> |
Basic: import SmallString<> into clang namespace (I was going to fix the TODO about DenseMap too, but that would break self-host right now. See PR11922.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
2f04f1843ca0ffca13b8b0d4dadd1f50dffb38b8 |
|
02-Feb-2012 |
Douglas Gregor <dgregor@apple.com> |
Back out my heinous hack that tricked the module generation mechanism into using non-absolute system includes (<foo>)... ... and introduce another hack that is simultaneously more heineous and more effective. We whitelist Clang-supplied headers that augment or override system headers (such as float.h, stdarg.h, and tgmath.h). For these headers, Clang does not provide a module mapping. Instead, a system-supplied module map can refer to these headers in a system module, and Clang will look both in its own include directory and wherever the system-supplied module map suggests, then adds either or both headers. The end result is that Clang-supplied headers get merged into the system-supplied module for the C standard library. As a drive-by, fix up a few dependencies in the _Builtin_instrinsics module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
dc58aa71026cce539ca9b5c2c52cc4efc7bd77fe |
|
30-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Thread a TargetInfo through to the module map; we'll need it for target-specific module requirements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149224 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
a1f1fad8b60e1cb9d21a40a37f2e03150bcbeb6f |
|
27-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Introduce module attributes into the module map grammar, along with a single attribute ("system") that allows us to mark a module as being a "system" module. Each of the headers that makes up a system module is considered to be a system header, so that we (for example) suppress warnings there. If a module is being inferred for a framework, and that framework directory is within a system frameworks directory, infer it as a system framework. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149143 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
7530c034c0c71a64c5a9173206d9742ae847af8b |
|
17-Jan-2012 |
David Blaikie <dblaikie@gmail.com> |
Remove unreachable code in Clang. (replace with llvm_unreachable where appropriate or when GCC requires it) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148292 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
3a110f75acafc992cb664200cebec90520986715 |
|
13-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Don't infer a submodule for a framework's private header, at least for now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148117 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
a150fa308028c3eed168c8d08f7ca4ded7d2b94f |
|
13-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Revert previous commit. Something has gone wonky with my local configuration git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148084 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
d30630f86592524f087f7bc7c889555a9293d7c8 |
|
13-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
When inferring a module map for a framework, add the 'private' requirement to headers under PrivateHeaders. We don't want to build them as part of the module (yet). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
303aae98a5a27f2595d023c0b4e1484bf2c0ee57 |
|
06-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
When inferring a submodule ID during module creation, look up the include stack to find the first file that is known to be part of the module. This copes with situations where the module map doesn't completely specify all of the headers that are involved in the module, which can come up when there are very strange #include_next chains (e.g., with weird compiler/stdlib headers like stdarg.h or float.h). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147662 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
c634f50c5cc892b899659c1743d696766c82afcd |
|
05-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
If we already have a definition for a top-level module that we deserialized from a module file, don't bother parsing a new definition git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147574 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
b7a7819473709c01ea024a2dc15e99d38f0f8760 |
|
05-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Store the submodules of a module in source order, as they are stored in the module map. This provides a bit more predictability for the user, as well as eliminating the need to sort the submodules when serializing them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147564 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
51f564f80d9f71e175635b452ffeeeff899e9bf1 |
|
31-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement support for module requirements, which indicate the language features needed for a particular module to be available. This allows mixed-language modules, where certain headers only work under some language variants (e.g., in C++, std.tuple might only be available in C++11 mode). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147387 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
3cee31e4d7c23d3d5d0b8927998577b9f75087d7 |
|
13-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Set umbrella directory correctly when we infer a framework module git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146451 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
6a1db484f32eb791840dd55a8d45c86ff5bd0834 |
|
09-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement the notion of umbrella directories, which implicity cover all of the headers below that particular directory. Use umbrella directories as a clean way to deal with (1) directories/frameworks that don't have an umbrella header, but don't want to enumerate all of their headers, and (2) PrivateHeaders, which we never want to enumerate and want to keep separate from the main umbrella header. This also eliminates a little more of the "magic" for private headers, and frameworks in general. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146235 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
77d029f6a24dbf70d97e61757945df53fb250ea0 |
|
08-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement umbrella directories for modules, which are similar to umbrella headers in the sense that all of the headers within that directory (and eventually its subdirectories) are considered to be part of the module with that umbrella directory. However, unlike umbrella headers, which are expected to include all of the headers within their subdirectories, Clang will automatically include all of the headers it finds in the named subdirectory. The intent here is to allow a module map to trivially turn a subdirectory into a module, where the module's structure can mimic the directory structure. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146165 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
489ad43b77c10a98df80f1395de81e3f52697e76 |
|
08-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Tweak the syntax of umbrella headers, so that "umbrella" is treated as a modifier for a header declarartion, e.g., umbrella header "headername" Collapse the umbrella-handling code in the parser into the header-handling code, so we don't duplicate the header-search logic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146159 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
10694cee2588442bee1e717f5042c58ffee25279 |
|
08-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Within the module representation, generalize the notion of an umbrella header to also support umbrella directories. The umbrella directory for an umbrella header is the directory in which the umbrella header resides. No functionality change yet, but it's coming. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146158 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
52b1ed3685c80cb436f2a616c3c13a066f9d1e31 |
|
08-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Convert paths to native format before constructing a directory_iterator for them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146154 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
23af6d58e392e18ae2946b799264717f480e6596 |
|
07-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement inference for the "Private" submodule corresponding to private headers in a framework. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
587986efc5ca409da3ebf0a4ab7f72ebf50a3ab9 |
|
07-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement basic support for private headers in frameworks. In essence, when we load a module map (module.map) from a directory, also load a private module map (module_private.map) for that directory, if present. That private module map can inject a new submodule that captures private headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
e6fb9876970e2dc55f091522644efa16caa9ba06 |
|
06-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Remove misleading error message git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145958 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
ac252a3b0f8101a7274309e4a5cf2d5f0fdba675 |
|
06-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
When inferring a module map for a framework, infer subframework modules for each of its subframeworks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
ef85b56bfee855823756a6f46ee50a8c7cc5f3a6 |
|
06-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Allow inferred submodules for any (sub)module that has an umbrella header git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
d620a84a01cc232a9449dbcc2c40bd43ca314fc9 |
|
06-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement modules support for subframeworks (aka embedded frameworks). A submodule can now be labeled as a "framework", and header search will look into the appropriate Headers/PrivateHeaders subdirectories for named headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
9f74f4f05c407b59f7639606bb0f4ec377b4e126 |
|
06-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Minor tweak to prepare for submodules with umbrella headers. No actual functionality change yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145938 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
e209e5026892cb07294f733c72bd51359c0f0e72 |
|
06-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement inferred submodules support, which (when requested) implicitly generates submodules corresponding to the headers that fall within a module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145887 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
1e12368db12005ddd92fd9188c86383fe30ef443 |
|
05-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Parse inferred submodules in module maps, track their contents in Module, and (de-)serialize this information. Semantics of inferred submodules to follow. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145864 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
209977c4d809914a20fd44873876c76cf972a56d |
|
05-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Inferred framework modules automatically export anything they import (i.e., 'export *'), to better match the semantics of headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
0adaa880993ad23186c87c7f98e7a3fd2697742c |
|
05-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement support for wildcard exports in modules, allowing a module to re-export anything that it imports. This opt-in feature makes a module behave more like a header, because it can be used to re-export the transitive closure of a (sub)module's dependencies. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145811 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
55988680ece66b8e505ee136b35e74fcb1173aee |
|
05-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
When writing a module file, keep track of the set of (sub)modules that it imports, establishing dependencies at the (sub)module granularity. This is not a user-visible change (yet). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
90db26000aefe9335370013eec64c85232d80227 |
|
02-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implementing parsing and resolution of module export declarations within module maps, which will (eventually) be used to re-export a module from another module. There are still some pieces missing, however. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145665 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
863eb53b5c97037874129b33711e0b668ce73975 |
|
01-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Unbreak build with GCC. Clang is too lame to diagnose this particular ill-formedness git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
1a4761edca58c6b559de825b9abfb66f7f1ba94a |
|
01-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Promote ModuleMap::Module to a namespace-scope class in the Basic library, since modules cut across all of the libraries. Rename serialization::Module to serialization::ModuleFile to side-step the annoying naming conflict. Prune a bunch of ModuleMap.h includes that are no longer needed (most files only needed the Module type). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145538 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
392ed2b717d86ebdd202cb9bb58d18d8b3b4cd87 |
|
30-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement (de-)serialization of the description of a module and its submodules. This information will eventually be used for name hiding when dealing with submodules. For now, we only use it to ensure that the module "key" returned when loading a module will always be a module (rather than occasionally being a FileEntry). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145497 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
c55edcf93ec47a576cb0093592fe0944fec5de70 |
|
30-Nov-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Use raw_ostream::indent. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145492 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
7f5fd8e79c5e528da0307792efd354ffa202722d |
|
30-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Switch the module map printer over to raw_ostream::write_escaped. Thanks, Benjamin! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145491 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
213d1be740f0150a338d5f58f1bce8c219775400 |
|
29-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Escape strings when printing module maps, for silly operating systems that use \ as a separator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145439 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
18ee547b6926cacefa15eed8ca60ff73d22e279b |
|
29-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Switch on-demand module building over to use module maps, always. When we infer the module map, we'll just print the module map to a temporary file and generate the module using that. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
f9e357d8a66c606a86a6e1aef678898b8843bd30 |
|
29-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Teach the module import mechanism how to rebuild modules expressed via module map, rather than assuming that there is an umbrella header. This allows us to automatically build umbrella-less modules. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145415 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
804c3bfee22076f232dddf4839439119cfdee2b6 |
|
29-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Expose the printing of module maps as part of the ModuleMap::Module interface. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
a865405e4155e8ea83d7ff1a1d8316907c300897 |
|
17-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Add the notion of "framework" modules to module maps. Framework modules (obviously) describe frameworks, and understand the header layout of frameworks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144921 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
09fe1bb696847e6f1b482e5ac40029d53a2402df |
|
17-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Actually free memory for the module maps git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144880 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
2821c7f8870629b56b9c41e1c50c7a091edd544d |
|
17-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
When we're loading a framework header, first try to turn the framework into a module. This module can either be loaded from a module map in the framework directory (which isn't quite working yet) or inferred from an umbrella header (which does work, and replaces the existing hack). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144877 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
adb979924ade3e25342c38a5b564400b4e0540c1 |
|
17-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
A module with an umbrella header assumes that all of the headers in the umbrella header's directory and its subdirectories are part of the module (that's why it's an umbrella). Make sure that these headers are considered to be part of the module for lookup purposes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144859 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
c96c7218b9968f0f4bd30c25e79aca638a3249b6 |
|
13-Nov-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Silence unused variable warning. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144500 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
484535e45b4d301847a157e943c7823da5d40884 |
|
12-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Teach the search for modules to consider modules described by a module map, so long as they have an umbrella header. This makes it possible to introduce a module map + umbrella header for a given set of headers, to turn it into a module. There are two major deficiencies here: first, we don't go hunting for module map files when we just see a module import (so we won't know about the modules described therein). Second, we don't yet have a way to build modules that don't have umbrella headers, or have incomplete umbrella headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144424 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
65f3b5e99009f49d51eb00a859dbd2c2ee660718 |
|
11-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Wire up the mapping from header files mentioned in module maps over to the corresponding (top-level) modules. This isn't actually useful yet, because we don't yet have a way to build modules out of module maps. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
8b6d3deb5af464e1afbbeccdec369c5d4252b1a0 |
|
11-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Resolve the header files named in module map "header" and "umbrella" declarations to actual files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144408 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|
a30cfe5026b12c28b7b575b48176e0a3543ce939 |
|
11-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce basic support for parsing module map files. Module map files provide a way to map between headers and modules, so that we can layer a module system on top of existing headers without changing those headers at all. This commit introduces the module map file parser and the module map that it generates, and wires up the module map file parser so that we'll automatically find module map files as part of header search. Note that we don't yet use the information stored in the module map. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/ModuleMap.cpp
|