034bbd5db7 
								
							 
						 
						
							
							
								
								Extract an isReservedName() function  
							
							... 
							
							
							
							We'll want to share the implementation if anything else decides to check
for reserved names in future, so make this little snippet of code more
discoverable.
Also remove the __va_list_tag and __builtin_va_list special-case
checks. They're leftovers from before when the reserved name logic was
added.
No change in functionality.
llvm-svn: 212006 
							
						 
						
							2014-06-30 01:33:53 +00:00  
				
					
						
							
							
								 
						
							
								01a7598561 
								
							 
						 
						
							
							
								
								Refactoring. Remove release and take methods from ActionResult. Rename takeAs to getAs.  
							
							... 
							
							
							
							llvm-svn: 209800 
							
						 
						
							2014-05-29 10:55:11 +00:00  
				
					
						
							
							
								 
						
							
								c3ec149bb2 
								
							 
						 
						
							
							
								
								[C++11] Use 'nullptr'. Sema edition.  
							
							... 
							
							
							
							llvm-svn: 209613 
							
						 
						
							2014-05-26 06:22:03 +00:00  
				
					
						
							
							
								 
						
							
								f3ca269839 
								
							 
						 
						
							
							
								
								Decouple ExprCXX.h and DeclCXX.h and clean up includes a bit.  
							
							... 
							
							
							
							Required pulling LambdaExpr::Capture into its own header.
No functionality change.
llvm-svn: 208470 
							
						 
						
							2014-05-10 16:31:55 +00:00  
				
					
						
							
							
								 
						
							
								100b24abc5 
								
							 
						 
						
							
							
								
								Implement [over.match.oper]p3 properly, by filtering the non-candidates out  
							
							... 
							
							
							
							when building the candidate set, rather than trying to contort name lookup into
handling this.
llvm-svn: 206436 
							
						 
						
							2014-04-17 01:52:14 +00:00  
				
					
						
							
							
								 
						
							
								9ef53ceb51 
								
							 
						 
						
							
							
								
								[Preprocessor/CodeComplete] Don't add include guard macros to code-completion results.  
							
							... 
							
							
							
							llvm-svn: 205917 
							
						 
						
							2014-04-09 18:21:23 +00:00  
				
					
						
							
							
								 
						
							
								35c5495bbb 
								
							 
						 
						
							
							
								
								[C++11] Replacing Scope iterators decl_begin() and decl_end() with iterator_range decls(). Updating all of the usages of the iterators with range-based for loops, and removing the no-longer-needed iterator versions.  
							
							... 
							
							
							
							llvm-svn: 204052 
							
						 
						
							2014-03-17 16:55:25 +00:00  
				
					
						
							
							
								 
						
							
								83731469a1 
								
							 
						 
						
							
							
								
								[C++11] Replacing ObjCObjectPointerType iterators qual_begin() and qual_end() with iterator_range quals(). Updating all of the usages of the iterators with range-based for loops.  
							
							... 
							
							
							
							llvm-svn: 204048 
							
						 
						
							2014-03-17 16:14:00 +00:00  
				
					
						
							
							
								 
						
							
								19a417699f 
								
							 
						 
						
							
							
								
								[C++11] Replacing ObjCCategoryDecl iterators protocol_begin() and protocol_end() with iterator_range protocols(). Updating all of the usages of the iterators with range-based for loops.  
							
							... 
							
							
							
							llvm-svn: 203922 
							
						 
						
							2014-03-14 12:55:57 +00:00  
				
					
						
							
							
								 
						
							
								0f6e64d505 
								
							 
						 
						
							
							
								
								[C++11] Replacing ObjCProtocolDecl iterators protocol_begin() and protocol_end() with iterator_range protocols(). Updating all of the usages of the iterators with range-based for loops.  
							
							... 
							
							
							
							llvm-svn: 203863 
							
						 
						
							2014-03-13 22:58:06 +00:00  
				
					
						
							
							
								 
						
							
								15063e19c6 
								
							 
						 
						
							
							
								
								[C++11] Replacing ObjCInterfaceDecl iterators known_categories_begin() and known_categories_end() with iterator_range known_categories(). Updating all of the usages of the iterators with range-based for loops.  
							
							... 
							
							
							
							llvm-svn: 203854 
							
						 
						
							2014-03-13 21:35:02 +00:00  
				
					
						
							
							
								 
						
							
								3fe486a332 
								
							 
						 
						
							
							
								
								[C++11] Replacing ObjCInterfaceDecl iterators visible_categories_begin() and visible_categories_end() with iterator_range visible_categories(). Updating all of the usages of the iterators with range-based for loops.  
							
							... 
							
							
							
							llvm-svn: 203851 
							
						 
						
							2014-03-13 21:23:55 +00:00  
				
					
						
							
							
								 
						
							
								a9f49e394c 
								
							 
						 
						
							
							
								
								[C++11] Replacing ObjCInterfaceDecl iterators all_referenced_protocol_begin() and all_referenced_protocol_end() with iterator_range all_referenced_protocols(). Updating all of the usages of the iterators with range-based for loops.  
							
							... 
							
							
							
							llvm-svn: 203848 
							
						 
						
							2014-03-13 20:55:22 +00:00  
				
					
						
							
							
								 
						
							
								a49c5064a1 
								
							 
						 
						
							
							
								
								[C++11] Replacing ObjCInterfaceDecl iterators protocol_begin() and protocol_end() with iterator_range protocols(). Updating all of the usages of the iterators with range-based for loops.  
							
							... 
							
							
							
							Drive-by fixing some incorrect types where a for loop would be improperly using ObjCInterfaceDecl::protocol_iterator. No functional changes in these cases.
llvm-svn: 203842 
							
						 
						
							2014-03-13 20:29:09 +00:00  
				
					
						
							
							
								 
						
							
								d174edffa0 
								
							 
						 
						
							
							
								
								Renaming the recently-created (r203830) props() range API to properties() for clarity.  
							
							... 
							
							
							
							llvm-svn: 203835 
							
						 
						
							2014-03-13 19:11:50 +00:00  
				
					
						
							
							
								 
						
							
								aff18c0446 
								
							 
						 
						
							
							
								
								[C++11] Replacing ObjCContainerDecl iterators meth_begin() and meth_end() with iterator_range methods(). Updating all of the usages of the iterators with range-based for loops.  
							
							... 
							
							
							
							llvm-svn: 203832 
							
						 
						
							2014-03-13 19:03:34 +00:00  
				
					
						
							
							
								 
						
							
								dc4bea4676 
								
							 
						 
						
							
							
								
								[C++11] Replacing ObjCContainerDecl iterators prop_begin() and prop_end() with iterator_range props(). Updating all of the usages of the iterators with range-based for loops.  
							
							... 
							
							
							
							llvm-svn: 203830 
							
						 
						
							2014-03-13 18:47:37 +00:00  
				
					
						
							
							
								 
						
							
								445a939db8 
								
							 
						 
						
							
							
								
								[C++11] Replacing CXXRecordDecl iterators vbases_begin() and vbases_end() with iterator_range vbases(). Updating all of the usages of the iterators with range-based for loops.  
							
							... 
							
							
							
							llvm-svn: 203808 
							
						 
						
							2014-03-13 16:15:17 +00:00  
				
					
						
							
							
								 
						
							
								574705ed7f 
								
							 
						 
						
							
							
								
								[C++11] Replacing CXXRecordDecl iterators bases_begin() and bases_end() with iterator_range bases(). Updating all of the usages of the iterators with range-based for loops.  
							
							... 
							
							
							
							llvm-svn: 203803 
							
						 
						
							2014-03-13 15:41:46 +00:00  
				
					
						
							
							
								 
						
							
								e14c0f8e73 
								
							 
						 
						
							
							
								
								[C++11] Add 'override' keyword to virtual methods that override their base class.  
							
							... 
							
							
							
							llvm-svn: 203640 
							
						 
						
							2014-03-12 04:55:44 +00:00  
				
					
						
							
							
								 
						
							
								be22bcb180 
								
							 
						 
						
							
							
								
								[C++11] Replacing DeclBase iterators specific_attr_begin() and specific_attr_end() with iterator_range specific_attrs(). Updating all of the usages of the iterators with range-based for loops.  
							
							... 
							
							
							
							llvm-svn: 203474 
							
						 
						
							2014-03-10 17:08:28 +00:00  
				
					
						
							
							
								 
						
							
								b97112e4bd 
								
							 
						 
						
							
							
								
								[C++11] Replacing Decl iterators attr_begin() and attr_end() with iterator_range attrs(). Updating all of the usages of the iterators with range-based for loops.  
							
							... 
							
							
							
							This is a reapplication of r203236 with modifications to the definition of attrs() and following the new style guidelines on auto usage.
llvm-svn: 203362 
							
						 
						
							2014-03-08 22:19:01 +00:00  
				
					
						
							
							
								 
						
							
								e8a8baef44 
								
							 
						 
						
							
							
								
								[C++11] Replacing RecordDecl iterators field_begin() and field_end() with iterator_range fields(). Updating all of the usages of the iterators with range-based for loops.  
							
							... 
							
							
							
							llvm-svn: 203355 
							
						 
						
							2014-03-08 20:12:42 +00:00  
				
					
						
							
							
								 
						
							
								23a6dcb365 
								
							 
						 
						
							
							
								
								[C++11] Replacing EnumDecl iterators enumerator_begin() and enumerator_end() with iterator_range enumerators(). Updating all of the usages of the iterators with range-based for loops.  
							
							... 
							
							
							
							llvm-svn: 203353 
							
						 
						
							2014-03-08 18:45:14 +00:00  
				
					
						
							
							
								 
						
							
								629afaefe0 
								
							 
						 
						
							
							
								
								[C++11] Replacing DeclBase iterators decls_begin() and decls_end() with iterator_range decls(). The same is true for the noload versions of these APIs. Updating all of the usages of the iterators with range-based for loops.  
							
							... 
							
							
							
							llvm-svn: 203278 
							
						 
						
							2014-03-07 19:56:05 +00:00  
				
					
						
							
							
								 
						
							
								43b68bebe7 
								
							 
						 
						
							
							
								
								[C++11] Replacing ObjCMethodDecl iterators param_begin() and param_end() with iterator_range params(). Updating all of the usages of the iterators with range-based for loops.  
							
							... 
							
							
							
							llvm-svn: 203255 
							
						 
						
							2014-03-07 17:50:17 +00:00  
				
					
						
							
							
								 
						
							
								7dce1a840c 
								
							 
						 
						
							
							
								
								Fully reverting r203236 -- it seems the only bots that are happy are the MSVC bots.  
							
							... 
							
							
							
							llvm-svn: 203237 
							
						 
						
							2014-03-07 13:13:38 +00:00  
				
					
						
							
							
								 
						
							
								690829696c 
								
							 
						 
						
							
							
								
								[C++11] Replacing iterators attr_begin() and attr_end() with iterator_range attrs(). Updating all of the usages of the iterators with range-based for loops.  
							
							... 
							
							
							
							llvm-svn: 203236 
							
						 
						
							2014-03-07 12:50:00 +00:00  
				
					
						
							
							
								 
						
							
								bbdd7640e8 
								
							 
						 
						
							
							
								
								[C++11] Replace verbose functors with succinct lambdas  
							
							... 
							
							
							
							No functionality change.
llvm-svn: 202590 
							
						 
						
							2014-03-01 14:48:57 +00:00  
				
					
						
							
							
								 
						
							
								382ba41c48 
								
							 
						 
						
							
							
								
								When completing Objective-C instance method invocations, perform a contextual conversion to an Objective-C pointer type of the target expression if needed. This fixes code completion of method invocations where the target is a smart pointer that has an explicit conversion operator to an Objective-C type.  
							
							... 
							
							
							
							llvm-svn: 202529 
							
						 
						
							2014-02-28 19:07:22 +00:00  
				
					
						
							
							
								 
						
							
								7bbb881ad4 
								
							 
						 
						
							
							
								
								[code-completion] Style guideline for Cocoa has custom accessor in property declarations without spaces around '='.  
							
							... 
							
							
							
							rdar://16059171
llvm-svn: 201765 
							
						 
						
							2014-02-20 07:55:15 +00:00  
				
					
						
							
							
								 
						
							
								314cc81b8c 
								
							 
						 
						
							
							
								
								Rename getResultType() on function and method declarations to getReturnType()  
							
							... 
							
							
							
							A return type is the declared or deduced part of the function type specified in
the declaration.
A result type is the (potentially adjusted) type of the value of an expression
that calls the function.
Rule of thumb:
  * Declarations have return types and parameters.
  * Expressions have result types and arguments.
llvm-svn: 200082 
							
						 
						
							2014-01-25 16:55:45 +00:00  
				
					
						
							
							
								 
						
							
								a2794f9f36 
								
							 
						 
						
							
							
								
								Introduce and use Decl::getAsFunction() to simplify templated function checks  
							
							... 
							
							
							
							Lift the getFunctionDecl() utility out of the parser into a general
Decl::getAsFunction() and use it to simplify other parts of the implementation.
Reduce isFunctionOrFunctionTemplate() to a simple type check that works the
same was as the other is* functions and move unwrapping of shadowed decls to
callers so it doesn't get run twice.
Shuffle around canSkipFunctionBody() to reduce virtual dispatch on ASTConsumer.
There's no need to query when we already know the body can't be skipped.
llvm-svn: 199794 
							
						 
						
							2014-01-22 07:29:52 +00:00  
				
					
						
							
							
								 
						
							
								b3fd5cfa81 
								
							 
						 
						
							
							
								
								Update FunctionTypeLoc and related names to match r199686  
							
							... 
							
							
							
							llvm-svn: 199699 
							
						 
						
							2014-01-21 00:32:38 +00:00  
				
					
						
							
							
								 
						
							
								9cacbabd33 
								
							 
						 
						
							
							
								
								Rename FunctionProtoType accessors from 'arguments' to 'parameters'  
							
							... 
							
							
							
							Fix a perennial source of confusion in the clang type system: Declarations and
function prototypes have parameters to which arguments are supplied, so calling
these 'arguments' was a stretch even in C mode, let alone C++ where default
arguments, templates and overloading make the distinction important to get
right.
Readability win across the board, especially in the casting, ADL and
overloading implementations which make a lot more sense at a glance now.
Will keep an eye on the builders and update dependent projects shortly.
No functional change.
llvm-svn: 199686 
							
						 
						
							2014-01-20 20:26:09 +00:00  
				
					
						
							
							
								 
						
							
								4a97967b5f 
								
							 
						 
						
							
							
								
								It turns out the problem was a bit more wide-spread. Removing a lot of unneeded typecasts. getScopeRep() already returns a NestedNameSpecifier.  
							
							... 
							
							
							
							No functional changes intended.
llvm-svn: 198414 
							
						 
						
							2014-01-03 13:56:08 +00:00  
				
					
						
							
							
								 
						
							
								c37877d7a4 
								
							 
						 
						
							
							
								
								Convert anachronistic use of 'void *' to 'DeclContext *' in Scope that was a holdover from the long-dead Action interface.  
							
							... 
							
							
							
							llvm-svn: 192203 
							
						 
						
							2013-10-08 17:08:03 +00:00  
				
					
						
							
							
								 
						
							
								541b38be7b 
								
							 
						 
						
							
							
								
								Switch the semantic DeclContext for a block-scope declaration of a function or  
							
							... 
							
							
							
							variable from being the function to being the enclosing namespace scope (in
C++) or the TU (in C). This allows us to fix a selection of related issues
where we would build incorrect redeclaration chains for such declarations, and
fail to notice type mismatches.
Such declarations are put into a new IdentifierNamespace, IDNS_LocalExtern,
which is only found when searching scopes, and not found when searching
DeclContexts. Such a declaration is only made visible in its DeclContext if
there are no non-LocalExtern declarations.
llvm-svn: 191064 
							
						 
						
							2013-09-20 01:15:31 +00:00  
				
					
						
							
							
								 
						
							
								9ddb76e201 
								
							 
						 
						
							
							
								
								Cleanup of OpaquePtr. No functionality changes.  
							
							... 
							
							
							
							- Some documenation were added.
- Usages of OpaquePtr<A>.getAsVal<A>() were replaced by OpaquePtr<A>.get().
- Methods getAs and getAsVal were renamed to getPtrTo and getPtrAs respectively.
llvm-svn: 189346 
							
						 
						
							2013-08-27 13:15:56 +00:00  
				
					
						
							
							
								 
						
							
								25284cc95b 
								
							 
						 
						
							
							
								
								Use pop_back_val() instead of both back() and pop_back().  
							
							... 
							
							
							
							No functionality change intended.
llvm-svn: 189112 
							
						 
						
							2013-08-23 16:11:15 +00:00  
				
					
						
							
							
								 
						
							
								16e94b91ef 
								
							 
						 
						
							
							
								
								Omit  llvm:: before ArrayRef, as we have using llvm::ArrayRef in include/clang/Basic/LLVM.h.  
							
							... 
							
							
							
							llvm-svn: 188089 
							
						 
						
							2013-08-09 18:02:13 +00:00  
				
					
						
							
							
								 
						
							
								07e6c407bc 
								
							 
						 
						
							
							
								
								Add option to disable module loading.  
							
							... 
							
							
							
							This patch was created by Lawrence Crowl and reviewed in:
http://llvm-reviews.chandlerc.com/D963 
llvm-svn: 187738 
							
						 
						
							2013-08-05 20:26:17 +00:00  
				
					
						
							
							
								 
						
							
								eb8c4463c2 
								
							 
						 
						
							
							
								
								Compress pairs. No functionality change.  
							
							... 
							
							
							
							llvm-svn: 185264 
							
						 
						
							2013-06-29 17:52:13 +00:00  
				
					
						
							
							
								 
						
							
								27cb3dd085 
								
							 
						 
						
							
							
								
								ArrayRef'ize Sema::CodeCompleteConstructorInitializer  
							
							... 
							
							
							
							Patch by Robert Wilhelm.
llvm-svn: 184675 
							
						 
						
							2013-06-23 22:58:02 +00:00  
				
					
						
							
							
								 
						
							
								070a10e63a 
								
							 
						 
						
							
							
								
								ArrayRef'ize Sema::CodeComplete*  
							
							... 
							
							
							
							Patch by Robert Wilhelm.
llvm-svn: 184052 
							
						 
						
							2013-06-16 03:47:57 +00:00  
				
					
						
							
							
								 
						
							
								345d05fbbe 
								
							 
						 
						
							
							
								
								[libclang] For "@import .." code-completion results, associate a CXCursor_ModuleImportDecl cursor instead of CXCursor_NotImplemented.  
							
							... 
							
							
							
							llvm-svn: 182871 
							
						 
						
							2013-05-29 18:50:15 +00:00  
				
					
						
							
							
								 
						
							
								d3da6e01e8 
								
							 
						 
						
							
							
								
								Enhance the ObjC global method pool to record whether there were 0, 1, or >= 2 methods (with a particular selector) inside categories.  
							
							... 
							
							
							
							This is done by extending ObjCMethodList (which is only used by the global method pool) to have 2 extra bits of information.
We will later take advantage of this info in global method pool for the overridden methods calculation.
llvm-svn: 179652 
							
						 
						
							2013-04-17 00:08:58 +00:00  
				
					
						
							
							
								 
						
							
								b4a9e86877 
								
							 
						 
						
							
							
								
								Parsing support for thread_local and _Thread_local. We give them the same  
							
							... 
							
							
							
							semantics as __thread for now.
llvm-svn: 179424 
							
						 
						
							2013-04-12 22:46:28 +00:00  
				
					
						
							
							
								 
						
							
								6ae7e50be4 
								
							 
						 
						
							
							
								
								Add 178663 back.  
							
							... 
							
							
							
							http://lab.llvm.org:8011/builders/clang-x86_64-darwin10-gdb  went back green
before it processed the reverted 178663, so it could not have been the culprit.
Revert "Revert 178663."
This reverts commit 4f8a3eb2ce5d4ba422483439e20c8cbb4d953a41.
llvm-svn: 178682 
						
							2013-04-03 19:27:57 +00:00  
				
					
						
							
							
								 
						
							
								985a3abee4 
								
							 
						 
						
							
							
								
								Revert 178663.  
							
							... 
							
							
							
							Looks like it broke http://lab.llvm.org:8011/builders/clang-x86_64-darwin10-gdb 
Revert "Don't compute a patched/semantic storage class."
This reverts commit 8f187f62cb0487d31bc4afdfcd47e11fe9a51d05.
llvm-svn: 178681 
							
						 
						
							2013-04-03 19:22:20 +00:00