Commit Graph

6 Commits

Author SHA1 Message Date
Ben Langmuir 6e63f50b2a Fix find command in test/Modules/prune.m broken by r206201
llvm-svn: 206203
2014-04-14 18:50:28 +00:00
Ben Langmuir beee15e721 Allow multiple modules with the same name to coexist in the module cache
To differentiate between two modules with the same name, we will
consider the path the module map file that they are defined by* part of
the ‘key’ for looking up the precompiled module (pcm file).
Specifically, this patch renames the precompiled module (pcm) files from
  cache-path/<module hash>/Foo.pcm
to
  cache-path/<module hash>/Foo-<hash of module map path>.pcm

In addition, I’ve taught the ASTReader to re-resolve the names of
imported modules during module loading so that if the header search
context changes between when a module was originally built and when it
is loaded we can rebuild it if necessary.  For example, if module A
imports module B

first time:
clang -I /path/to/A -I /path/to/B ...

second time:
clang -I /path/to/A -I /different/path/to/B ...

will now rebuild A as expected.

* in the case of inferred modules, we use the module map file that
allowed the inference, not the __inferred_module.map file, since the
inferred file path is the same for every inferred module.

llvm-svn: 206201
2014-04-14 18:00:01 +00:00
Douglas Gregor 5168e70c0c Remove local path from test.
llvm-svn: 177925
2013-03-25 21:52:42 +00:00
Douglas Gregor b0c9201eb9 Use xargs rather than
llvm-svn: 177923
2013-03-25 21:49:54 +00:00
Douglas Gregor 1f37dddd57 Use 'touch -t', which both BSD and Linux support.
llvm-svn: 177921
2013-03-25 21:27:57 +00:00
Douglas Gregor 527b1c95df <rdar://problem/13434605> Periodically prune the module cache so that it does not grow forever.
llvm-svn: 177918
2013-03-25 21:19:16 +00:00