hanchenye-llvm-project/clang/test/PCH
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
..
Inputs
libroot/usr/include
__va_list_tag.c
arc.m
asm.c
asm.h
attrs-PR8406.c
attrs.c
badpch.c
blocks.c
blocks.h
builtins.c
builtins.h
captured-stmt.cpp
case-insensitive-include.c
chain-categories.m
chain-categories2.m
chain-class-extension.m
chain-conversion-lookup.cpp
chain-cxx.cpp
chain-decls.c
chain-empty-initial-namespace.cpp
chain-ext_vector.c
chain-external-defs.c
chain-friend-instantiation.cpp
chain-implicit-definition.cpp
chain-late-anonymous-namespace.cpp
chain-macro-override.c
chain-macro.c
chain-pending-instantiations.cpp Switch to the new MingW ABI. 2013-12-12 16:07:11 +00:00
chain-predecl.h
chain-predecl.m
chain-remap-types.m
chain-selectors.m ObjectiveC. Improve on diagnostics per Jordan's feedback. 2014-01-15 00:59:25 +00:00
chain-staticvar-instantiation.cpp
chain-trivial.c
changed-files.c
check-deserializations.cpp
cmdline-include.c
cmdline-include1.h
cmdline-include2.h
cocoa.m
crash-12631281.cpp
cuda-kernel-call.cu
cxx-alias-decl.cpp
cxx-alias-decl.h
cxx-chain-function-template.cpp
cxx-constexpr.cpp
cxx-exprs.cpp
cxx-for-range.cpp
cxx-for-range.h
cxx-friends.cpp
cxx-friends.h
cxx-functions.cpp
cxx-functions.h
cxx-implicit-moves.cpp
cxx-mangling.cpp Serialize and deserialize mangling numbers. 2014-03-21 01:48:23 +00:00
cxx-member-init.cpp
cxx-method.cpp
cxx-ms-function-specialization-class-scope.cpp
cxx-ms-function-specialization-class-scope.h
cxx-namespaces.cpp
cxx-namespaces.h
cxx-offsetof-base.cpp
cxx-offsetof-base.h
cxx-reference.cpp Remove the -cxx-abi command-line flag. 2014-01-14 19:35:09 +00:00
cxx-reference.h
cxx-required-decls.cpp Remove the -cxx-abi command-line flag. 2014-01-14 19:35:09 +00:00
cxx-required-decls.h
cxx-static_assert.cpp
cxx-templates.cpp Remove the -cxx-abi command-line flag. 2014-01-14 19:35:09 +00:00
cxx-templates.h PCH: fix a crash caused by a circular deserialization dependency 2013-12-19 02:05:20 +00:00
cxx-trailing-return.cpp
cxx-traits.cpp Emit an extension warning when changing system header tokens 2013-12-03 06:13:01 +00:00
cxx-traits.h Make the -Wkeyword-compat diag message more accurate 2013-12-09 12:41:02 +00:00
cxx-typeid.cpp Default to use libc++ on OS X 10.9+ and iOS 7+. 2013-11-02 23:19:53 +00:00
cxx-typeid.h
cxx-using.cpp
cxx-using.h
cxx-variadic-templates.cpp
cxx-variadic-templates.h
cxx0x-default-delete.cpp
cxx0x-delegating-ctors.cpp
cxx1y-decltype-auto.cpp
cxx1y-deduced-return-type.cpp
cxx1y-default-initializer.cpp
cxx1y-init-captures.cpp Per latest drafting, switch to implementing init-captures as if by declaring 2013-09-28 04:02:39 +00:00
cxx1y-lambdas.mm Refactor out the circular reference to LambdaExpr in CXXRecordDecl. 2013-10-23 16:10:50 +00:00
cxx1y-variable-templates.cpp Implement restriction that a partial specialization must actually specialize 2013-09-24 04:49:23 +00:00
cxx11-constexpr.cpp
cxx11-enum-template.cpp
cxx11-exception-spec.cpp When the exception specification for a function in an imported PCH or module is 2014-03-20 21:47:22 +00:00
cxx11-inheriting-ctors.cpp Fix PR18307: Properly (de)serialize inherited constructors and their using declarations 2014-03-27 19:22:19 +00:00
cxx11-lambdas.mm Add compat/extension warnings for init captures. 2013-09-28 05:38:27 +00:00
cxx11-statement-attributes.cpp
cxx11-user-defined-literals.cpp
cxx_exprs.cpp
cxx_exprs.h
debug-info-limited-struct.c
debug-info-limited-struct.h
designated-init.c
designated-init.c.h
different-diagnostic-level.c Revert r194097: "With this patch -Wwrite-strings is still implemented with the terrible 2014-02-07 08:33:28 +00:00
empty-with-headers.c
enum.c
enum.h
exprs.c
exprs.h
ext_vector.c
ext_vector.h
external-defs.c
external-defs.h
field-designator.c Remove duplicated -cc1 in tests 2013-12-08 18:06:52 +00:00
floating-literal.c
format-strings.c
friend-template.cpp
functions.c
functions.h
fuzzy-pch.c
fuzzy-pch.h
headermap.h
headermap.m
headersearch.cpp
irgen-rdar13114142.mm Remove the -cxx-abi command-line flag. 2014-01-14 19:35:09 +00:00
line-directive.c
line-directive.h
local_static.cpp Fix PCH deserialization bug with local static symbols being treated as local extern. 2014-02-11 06:29:29 +00:00
local_static.h Fix PCH deserialization bug with local static symbols being treated as local extern. 2014-02-11 06:29:29 +00:00
macro-redef.c
macro-undef.cpp If a module A exports a macro M, and a module B imports that macro and #undef's 2014-03-01 00:08:04 +00:00
method-redecls.m
method_pool.h
method_pool.m
missing-file.cpp
modified-header-crash.c
modified-header-crash.h
modified-header-error.c
modified-module-dependency.m Allow multiple modules with the same name to coexist in the module cache 2014-04-14 18:00:01 +00:00
modified-module-dependency.module.map Improve the error message when a PCH dependency is modified 2014-01-17 00:19:09 +00:00
ms-if-exists.cpp
multiple-include-pch.c
multiple_decls.c
multiple_decls.h
namespaces.cpp
nonvisible-external-defs.c
nonvisible-external-defs.h
objc_container.h
objc_container.m Fix broken CHECK lines 2014-02-16 07:29:41 +00:00
objc_exprs.h
objc_exprs.m
objc_import.h
objc_import.m
objc_literals.m
objc_literals.mm Remove the -cxx-abi command-line flag. 2014-01-14 19:35:09 +00:00
objc_methods.h
objc_methods.m
objc_property.h
objc_property.m
objc_stmts.h
objc_stmts.m
objcxx-ivar-class.h
objcxx-ivar-class.mm Remove the -cxx-abi command-line flag. 2014-01-14 19:35:09 +00:00
ocl_types.cl
ocl_types.h
opencl-extensions.cl
pch-dir.c
pch-dir.h
pch__VA_ARGS__.c
pch__VA_ARGS__.h
pchpch.c
pchpch1.h
pchpch2.h
pending-ids.m
pr4489.c
pr18806.cpp Fix PR18806: Canonicalize the replacement type when deserializing a SubstTemplateTypeParmType 2014-03-15 10:23:27 +00:00
pragma-diag-section.cpp Change the other -Wtautological-compare warnings to not trigger in template 2013-11-02 02:11:23 +00:00
pragma-diag.c
pragma-weak.c
pragma-weak.h
preamble.c
preprocess.c
preprocess.h
pth.c
pth.h
rdar8852495.c
rdar10830559.cpp Adds Microsoft compatiable C++ record layout code to clang. 2013-10-11 20:19:00 +00:00
reinclude.cpp
reinclude1.h
reinclude2.h
reloc.c
remap-file-from-pch.cpp
remap-file-from-pch.cpp.h
remap-file-from-pch.cpp.remap.h
replaced-decl.m
selector-warning.h
selector-warning.m
single-token-macro.c
source-manager-stack.c
stmts.c
stmts.h
struct.c
struct.h
subscripting-literals.m
target-options.c
target-options.h
tentative-defs.c
tentative-defs.h
thread-local.cpp
thread-safety-attrs.cpp Updating the capability attribute diagnostics to be more capability-neutral. Instead of using terminology such as "lock", "unlock" and "locked", the new terminology is "acquire", "release" and "held". Additionally, the capability attribute's name argument is now reported as part of the diagnostic, instead of hard coding as "mutex." 2014-04-01 21:43:23 +00:00
types.c
types.h
typo.cpp
typo.m
typo2.cpp
undefined-internal.c
va_arg.c
va_arg.cpp
va_arg.h
variables.c
variables.h
verify_pch.m Fix test from r200979 on Windows 2014-02-07 19:39:50 +00:00
working-directory.cpp
working-directory.h