llvm-project/clang/test/Modules/Inputs
Douglas Gregor 6168bd2323 Ensure that the identifier chains have the most recent declaration after module deserialization.
This commit introduces a set of related changes to ensure that the
declaration that shows up in the identifier chain after deserializing
declarations with a given identifier is, in fact, the most recent
declaration. The primary change involves waiting until after we
deserialize and wire up redeclaration chains before updating the
identifier chains. There is a minor optimization in here to avoid
recursively deserializing names as part of looking to see whether
top-level declarations for a given name exist.

A related change that became suddenly more urgent is to property
record a merged declaration when an entity first declared in the
current translation unit is later deserialized from a module (that had
not been loaded at the time of the original declaration). Since we key
off the canonical declaration (which is parsed, not from an AST file)
for emitted redeclarations, we simply record this as a merged
declaration during AST writing and let the readers merge them.

Re-fixes <rdar://problem/13189985>, presumably for good this time.

llvm-svn: 175447
2013-02-18 15:53:43 +00:00
..
AlsoDependsOnModule.framework/Headers Inferred framework modules automatically export anything they import 2011-12-05 17:40:25 +00:00
CmdLine.framework/Headers When building a module, use the macro definitions on the command line 2011-10-17 14:55:37 +00:00
DependsOnModule.framework When forming the link options for an imported module, also include the 2013-01-14 19:00:05 +00:00
HasSubModules.framework Change this comment to helpfully explain why it's there. 2013-02-13 03:34:21 +00:00
Modified When loading a module fails because it is out of date, rebuild that 2012-11-07 17:46:15 +00:00
Module.framework Infer "link" lines for top-level frameworks. Essentially, a framework 2013-01-14 17:57:51 +00:00
MutuallyRecursive1.framework/Headers Use @import rather than @__experimental_modules_import, since the 2012-12-11 22:11:52 +00:00
MutuallyRecursive2.framework/Headers Use @import rather than @__experimental_modules_import, since the 2012-12-11 22:11:52 +00:00
NoUmbrella.framework Infer "link" lines for top-level frameworks. Essentially, a framework 2013-01-14 17:57:51 +00:00
NotAModule.framework/Headers Introduce inferred framework modules into the module map file, 2012-11-06 19:39:40 +00:00
System/usr/include Back out my heinous hack that tricked the module generation mechanism 2012-02-02 18:42:48 +00:00
normal-module-map Add missing header from 165821 2012-10-12 21:17:34 +00:00
subdir Test module lookup within a subdirectory of a normal include directory. 2012-01-29 16:43:46 +00:00
submodules Implement name hiding for macro definitions within modules, such that 2011-12-02 15:45:10 +00:00
wildcard-submodule-exports Use @import rather than @__experimental_modules_import, since the 2012-12-11 22:11:52 +00:00
MethodPoolA.h Order the methods in the global method pool based on when they become visible, not when they become deserialized <rdar://problem/13203033>. 2013-02-12 23:36:21 +00:00
MethodPoolASub.h Order the methods in the global method pool based on when they become visible, not when they become deserialized <rdar://problem/13203033>. 2013-02-12 23:36:21 +00:00
MethodPoolASub2.h Add missing header from r174648 2013-02-07 19:15:44 +00:00
MethodPoolB.h Whenever Sema attempts to look in the global method pool, try to load 2012-01-25 00:59:09 +00:00
MethodPoolBSub.h Retain all hidden methods in the global method pool, because they may become visible <rdar://problem/13172858>. 2013-02-07 19:13:24 +00:00
autolink-sub.h Implement parsing, AST, (de-)serialization, and placeholder global 2013-01-14 17:21:00 +00:00
autolink-sub2.h Implement parsing, AST, (de-)serialization, and placeholder global 2013-01-14 17:21:00 +00:00
autolink.h Implement parsing, AST, (de-)serialization, and placeholder global 2013-01-14 17:21:00 +00:00
category_bottom.h Use @import rather than @__experimental_modules_import, since the 2012-12-11 22:11:52 +00:00
category_left.h Use @import rather than @__experimental_modules_import, since the 2012-12-11 22:11:52 +00:00
category_left_sub.h Treat hidden Objective-C protocol definitions as if they were 2013-01-17 00:38:46 +00:00
category_other.h Use @import rather than @__experimental_modules_import, since the 2012-12-11 22:11:52 +00:00
category_right.h Use @import rather than @__experimental_modules_import, since the 2012-12-11 22:11:52 +00:00
category_right_sub.h Treat hidden Objective-C protocol definitions as if they were 2013-01-17 00:38:46 +00:00
category_top.h Treat hidden Objective-C protocol definitions as if they were 2013-01-17 00:38:46 +00:00
cxx-inline-namespace.h Remove an assert which triggers when a decl context in a module hits the 'has 2013-02-12 02:32:35 +00:00
cxx-linkage-cache.h Fix a bug reduced from a crash when trying to use modules with libc++. We check 2013-02-12 05:48:23 +00:00
cxx-many-overloads.h Fix stack overflow and improve performance when a module contains many 2013-02-08 00:37:45 +00:00
decl.h When name lookup comes across a declaration that is in a module that 2011-12-14 16:03:29 +00:00
decl2.h Fix chaining of ObjCInterfaceDecl redeclarations 2011-12-16 03:12:41 +00:00
def-include.h When inferring a submodule ID during module creation, look up the 2012-01-06 17:19:32 +00:00
def.h Ensure that type definitions present in just-loaded modules are 2013-02-09 01:35:03 +00:00
diamond.h Use @import rather than @__experimental_modules_import, since the 2012-12-11 22:11:52 +00:00
diamond_bottom.h Use @import rather than @__experimental_modules_import, since the 2012-12-11 22:11:52 +00:00
diamond_left.h Use @import rather than @__experimental_modules_import, since the 2012-12-11 22:11:52 +00:00
diamond_right.h Use @import rather than @__experimental_modules_import, since the 2012-12-11 22:11:52 +00:00
diamond_top.h Introduce a module visitation function that starts at the top-level 2011-08-20 04:39:52 +00:00
ignored_macros.h Detect when we end up trying to load conflicting module files. 2013-02-06 22:40:31 +00:00
import-decl.h Fix ASTReader handling of ImportDecls, from Meador Inge! 2012-05-16 16:31:58 +00:00
irgen.h Switch some more of the modules tests over to "-emit-module-from-map", 2011-11-16 00:21:54 +00:00
linkage-merge-sub.h When name lookup for a redeclaration finds declarations that are known 2013-01-09 00:47:56 +00:00
load_failure.h Introduce support for a simple module import declaration, which 2011-08-26 23:56:07 +00:00
lookup_left.h Use the module manager's search facility to look for methods with a 2011-08-25 14:51:20 +00:00
lookup_left.hpp Introduce a -cc1 option "-emit-module", that creates a binary module 2011-08-25 22:30:56 +00:00
lookup_right.h Use the module manager's search facility to look for methods with a 2011-08-25 14:51:20 +00:00
lookup_right.hpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
macros.h Introduce builtin macros to determine whether we're building a 2012-09-25 15:44:52 +00:00
macros_left.h Use @import rather than @__experimental_modules_import, since the 2012-12-11 22:11:52 +00:00
macros_other.h Rework the (de-)serialization of macros, as stored in 2012-10-09 23:05:51 +00:00
macros_right.h Use @import rather than @__experimental_modules_import, since the 2012-12-11 22:11:52 +00:00
macros_right_undef.h Track which particular submodule #undef's a macro, so that the actual 2012-10-12 00:16:50 +00:00
macros_top.h Track which particular submodule #undef's a macro, so that the actual 2012-10-12 00:16:50 +00:00
module.map Fix a bug reduced from a crash when trying to use modules with libc++. We check 2013-02-12 05:48:23 +00:00
module_private_left.h When performing name lookup for a redeclaration, ignore module 2011-12-20 18:11:52 +00:00
module_private_right.h When performing name lookup for a redeclaration, ignore module 2011-12-20 18:11:52 +00:00
namespaces-left.h Fix handling of module imports adding names to a DeclContext after qualified 2013-02-07 03:37:08 +00:00
namespaces-right.h Fix handling of module imports adding names to a DeclContext after qualified 2013-02-07 03:37:08 +00:00
namespaces-top.h When deserializing an anonymous namespace from a module, do not attach 2012-01-09 18:07:24 +00:00
point.h When we load header file information from the external source (i.e., 2011-09-17 05:35:18 +00:00
redecl-merge-bottom-prefix.h [Modules] Cope better with top-level declarations loaded after being declared in the current translation unit <rdar://problem/13189985>. 2013-02-11 18:16:18 +00:00
redecl-merge-bottom.h [Modules] Cope better with top-level declarations loaded after being declared in the current translation unit <rdar://problem/13189985>. 2013-02-11 18:16:18 +00:00
redecl-merge-left-left.h Use @import rather than @__experimental_modules_import, since the 2012-12-11 22:11:52 +00:00
redecl-merge-left.h Ensure that the identifier chains have the most recent declaration after module deserialization. 2013-02-18 15:53:43 +00:00
redecl-merge-right.h Ensure that the identifier chains have the most recent declaration after module deserialization. 2013-02-18 15:53:43 +00:00
redecl-merge-top-explicit.h When we're performing name lookup for a tag, we still allow ourselves 2012-01-05 01:11:47 +00:00
redecl-merge-top.h Ensure that the identifier chains have the most recent declaration after module deserialization. 2013-02-18 15:53:43 +00:00
redecl_namespaces_left.h There's some code in the PCH reader that looks like it's needlessly complex, but 2012-04-12 07:56:21 +00:00
redecl_namespaces_right.h There's some code in the PCH reader that looks like it's needlessly complex, but 2012-04-12 07:56:21 +00:00
redeclarations_left.h Switch the remaining modules tests over to -emit-module-from-map. 2011-11-16 15:22:03 +00:00
redeclarations_right.h Switch the remaining modules tests over to -emit-module-from-map. 2011-11-16 15:22:03 +00:00
templates-left.h Use @import rather than @__experimental_modules_import, since the 2012-12-11 22:11:52 +00:00
templates-right.h Use @import rather than @__experimental_modules_import, since the 2012-12-11 22:11:52 +00:00
templates-top.h Add redecls into their lexical DeclContext: this is what they assert on, and the merging should have set it correctly. 2012-10-02 13:06:13 +00:00
weird_objc.h Merge "special" types from different modules in the AST reader. 2013-02-01 23:45:03 +00:00