Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								6dc8ae10aa 
								
							 
						 
						
							
							
								
								[modules] When parsing the base specifiers of a parse-merged class, the current  
							
							 
							
							... 
							
							
							
							context is the class itself but lookups should be performed starting with the
lookup parent of the class (class and base members don't shadow types from the
surrounding context because they have not been declared yet).
llvm-svn: 245236 
							
						 
						
							2015-08-17 20:24:17 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								2bb3c34ed4 
								
							 
						 
						
							
							
								
								[modules] When loading a template specialization, re-canonicalize its template  
							
							 
							
							... 
							
							
							
							arguments because the reloaded form might have become non-canonical across the
serialization/deserialization step (this particularly happens when the
canonical form of the type involves an expression).
llvm-svn: 244409 
							
						 
						
							2015-08-09 01:05:31 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								8cbd895947 
								
							 
						 
						
							
							
								
								[modules] Make IndirectFieldDecl mergeable to avoid lookup ambiguity when the same anonymous union is defined across multiple modules.  
							
							 
							
							... 
							
							
							
							llvm-svn: 243940 
							
						 
						
							2015-08-04 02:05:09 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								826711d456 
								
							 
						 
						
							
							
								
								[modules] When performing redeclaration lookup for a using declaration, prefer  
							
							 
							
							... 
							
							
							
							UsingShadowDecls over other declarations of the same entity in the lookup
results. This ensures that we build correct redeclaration chains for the
UsingShadowDecls (otherwise we could see assertions and other misbehavior in
modules builds, when merging combines multiple redeclaration chains for the
same entity from the same module into one chain).
llvm-svn: 243592 
							
						 
						
							2015-07-29 23:38:25 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								b1d8ea4635 
								
							 
						 
						
							
							
								
								[modules] Fix merging support for forward-declared enums with fixed underlying types. A visible declaration is enough to make the type complete, but not enough to make the definition visible.  
							
							 
							
							... 
							
							
							
							llvm-svn: 241743 
							
						 
						
							2015-07-08 21:49:31 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								da6c234c39 
								
							 
						 
						
							
							
								
								[modules] Merging support for specializations of a function template. This very  
							
							 
							
							... 
							
							
							
							rarely matters, but can affect whether two dependent types are canonically
equivalent.
llvm-svn: 241207 
							
						 
						
							2015-07-01 23:19:58 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								5327b89001 
								
							 
						 
						
							
							
								
								[modules] Don't make out-of-line member specializations of an instantiated  
							
							 
							
							... 
							
							
							
							class template specialization visible just because the class template
specialization's definition is visible.
llvm-svn: 241182 
							
						 
						
							2015-07-01 19:32:54 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								04c6c1f3a5 
								
							 
						 
						
							
							
								
								[modules] Skip trailing attributes when skipping a class definition during parse-merging.  
							
							 
							
							... 
							
							
							
							llvm-svn: 241180 
							
						 
						
							2015-07-01 18:56:50 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								7655381aa1 
								
							 
						 
						
							
							
								
								[modules] Don't require the 'inline' specifier when merging an inline function;  
							
							 
							
							... 
							
							
							
							any source of the inline nature is sufficient.
llvm-svn: 241146 
							
						 
						
							2015-07-01 07:24:18 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								afe800c456 
								
							 
						 
						
							
							
								
								[modules] Fix typo in default argument merging.  
							
							 
							
							... 
							
							
							
							llvm-svn: 239954 
							
						 
						
							2015-06-17 22:13:23 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								5293379374 
								
							 
						 
						
							
							
								
								[modules] Fix merging of default template arguments onto friend templates.  
							
							 
							
							... 
							
							
							
							Previously we'd complain about redefinition of default arguments when we
instantiated a class with a friend template that inherits its default argument,
because we propagate the default template arguemnt onto the friend when we
reload the AST.
llvm-svn: 239857 
							
						 
						
							2015-06-16 21:57:05 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								f2b1eb9eb2 
								
							 
						 
						
							
							
								
								[modules] Better support for redefinitions of an entity from the same module.  
							
							 
							
							... 
							
							
							
							Support this across module save/reload and extend the 'missing import'
diagnostics with a list of providing modules.
llvm-svn: 239750 
							
						 
						
							2015-06-15 20:15:48 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								a1431077de 
								
							 
						 
						
							
							
								
								[modules] Apply name visibility rules to names found by ADL.  
							
							 
							
							... 
							
							
							
							llvm-svn: 239578 
							
						 
						
							2015-06-12 01:32:13 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								c785276b92 
								
							 
						 
						
							
							
								
								[modules] Fix crash with multiple levels of default template argument merging.  
							
							 
							
							... 
							
							
							
							llvm-svn: 239575 
							
						 
						
							2015-06-11 23:46:11 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								0f192e8940 
								
							 
						 
						
							
							
								
								[modules] Fix assert/crash when parsing and merging a definition of a class with a base-specifier inside a namespace.  
							
							 
							
							... 
							
							
							
							llvm-svn: 239569 
							
						 
						
							2015-06-11 22:48:25 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								00be6d0ff8 
								
							 
						 
						
							
							
								
								[modules] Fix a few places where merging wasn't performed if modules was disabled but local module visibilty was enabled.  
							
							 
							
							... 
							
							
							
							llvm-svn: 239504 
							
						 
						
							2015-06-11 03:05:39 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								fd8b64eea0 
								
							 
						 
						
							
							
								
								[modules] Support merging a parsed default argument with an imported hidden one for non-type and template template parameters too.  
							
							 
							
							... 
							
							
							
							llvm-svn: 237815 
							
						 
						
							2015-05-20 18:24:21 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								c7d48d1a16 
								
							 
						 
						
							
							
								
								[modules] Support merging a parsed default function/template argument with an imported but hidden one.  
							
							 
							
							... 
							
							
							
							llvm-svn: 237814 
							
						 
						
							2015-05-20 17:50:35 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								82e57fb1e8 
								
							 
						 
						
							
							
								
								[modules] Support for merging a parsed definition of a static data member of a class template into an imported but hidden definition.  
							
							 
							
							... 
							
							
							
							llvm-svn: 237647 
							
						 
						
							2015-05-19 00:49:29 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								c7e6ff02d5 
								
							 
						 
						
							
							
								
								[modules] Support for merging a parsed class template specialization definition into an imported but hidden definition.  
							
							 
							
							... 
							
							
							
							llvm-svn: 237612 
							
						 
						
							2015-05-18 20:36:47 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								d9ba224f66 
								
							 
						 
						
							
							
								
								[modules] Suport for merging a parsed enum definition into an existing imported but not visible definition.  
							
							 
							
							... 
							
							
							
							llvm-svn: 236690 
							
						 
						
							2015-05-07 03:54:19 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								d6aab59ad1 
								
							 
						 
						
							
							
								
								[modules] Allow a function template definition if we have a pre-existing but not visible definition of the same template.  
							
							 
							
							... 
							
							
							
							llvm-svn: 233430 
							
						 
						
							2015-03-27 21:57:41 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								9a71c99844 
								
							 
						 
						
							
							
								
								[modules] Allow a function to be redefined if the old definition is not visible.  
							
							 
							
							... 
							
							
							
							llvm-svn: 233407 
							
						 
						
							2015-03-27 20:16:58 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								a523022b53 
								
							 
						 
						
							
							
								
								[modules] Handle defining a tag with a typedef name for linkage purposes on top of an existing imported-but-not-visible definition.  
							
							 
							
							... 
							
							
							
							llvm-svn: 233345 
							
						 
						
							2015-03-27 01:37:43 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								be3980b73c 
								
							 
						 
						
							
							
								
								[modules] Handle defining a class template on top of an existing imported-but-not-visible definition.  
							
							 
							
							... 
							
							
							
							llvm-svn: 233341 
							
						 
						
							2015-03-27 00:41:57 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Smith
							
						 
						
							 
							
							
							
							
								
							
							
								65ebb4ac8a 
								
							 
						 
						
							
							
								
								[modules] If we reach a definition of a class for which we already have a  
							
							 
							
							... 
							
							
							
							non-visible definition, skip the new definition and make the old one visible
instead of trying to parse it again and failing horribly. C++'s ODR allows
us to assume that the two definitions are identical.
llvm-svn: 233250 
							
						 
						
							2015-03-26 04:09:53 +00:00