c3a6ade0bb 
								
							 
						 
						
							
							
								
								Move Sema's headers into include/clang/Sema, renaming a few along the way.  
							
							... 
							
							
							
							llvm-svn: 110945 
							
						 
						
							2010-08-12 20:07:10 +00:00  
				
					
						
							
							
								 
						
							
								570024a8d9 
								
							 
						 
						
							
							
								
								Implement #pragma GCC visibility.  
							
							... 
							
							
							
							llvm-svn: 110315 
							
						 
						
							2010-08-05 06:57:20 +00:00  
				
					
						
							
							
								 
						
							
								b412e174db 
								
							 
						 
						
							
							
								
								Remove the vast majority of the Destroy methods from the AST library,  
							
							... 
							
							
							
							since we aren't going to be calling them ever.
llvm-svn: 109377 
							
						 
						
							2010-07-25 18:17:45 +00:00  
				
					
						
							
							
								 
						
							
								84336ba3f8 
								
							 
						 
						
							
							
								
								Sema: Fix a bug with #pragma options align=reset, reset against an empty stack  
							
							... 
							
							
							
							is well defined, it resets to the default alignment.
llvm-svn: 108508 
							
						 
						
							2010-07-16 04:54:16 +00:00  
				
					
						
							
							
								 
						
							
								a688566f0a 
								
							 
						 
						
							
							
								
								Sema: Fix comment, apparently #pragma options align=power is just the same as  
							
							... 
							
							
							
							align=native, at least for the platforms we support.
llvm-svn: 105000 
							
						 
						
							2010-05-28 20:08:00 +00:00  
				
					
						
							
							
								 
						
							
								5794c6fa43 
								
							 
						 
						
							
							
								
								Sema: Just ignore '#pragma options align=power' for now, this is no worse than  
							
							... 
							
							
							
							what we used to be doing, and makes sure that paired '#pragma options
align=reset' won't fail.
llvm-svn: 104998 
							
						 
						
							2010-05-28 19:43:33 +00:00  
				
					
						
							
							
								 
						
							
								9c84d4a8a0 
								
							 
						 
						
							
							
								
								Parse/Sema: Add support for '#pragma options align=packed', which, it should be  
							
							... 
							
							
							
							noted, is not the same as __attribute__((packed)). That would be ridiculous!
llvm-svn: 104865 
							
						 
						
							2010-05-27 18:42:17 +00:00  
				
					
						
							
							
								 
						
							
								663e8094ae 
								
							 
						 
						
							
							
								
								Parse/Sema: Add support for '#pragma options align=native'.  
							
							... 
							
							
							
							llvm-svn: 104864 
							
						 
						
							2010-05-27 18:42:09 +00:00  
				
					
						
							
							
								 
						
							
								6da1098b4b 
								
							 
						 
						
							
							
								
								Sema: Add initial support for '#pragma options align=mac68k'.  
							
							... 
							
							
							
							- Docs are fairly sketchy, if someone wants to pore through gcc to look for
   holes I'd appreciate any failing test cases!
llvm-svn: 104809 
							
						 
						
							2010-05-27 05:45:51 +00:00  
				
					
						
							
							
								 
						
							
								4dbe15d437 
								
							 
						 
						
							
							
								
								Sema: Factor out struct for alignment stack entries.  
							
							... 
							
							
							
							llvm-svn: 104799 
							
						 
						
							2010-05-27 02:25:27 +00:00  
				
					
						
							
							
								 
						
							
								8804f2e253 
								
							 
						 
						
							
							
								
								Sema: Replace getPragmaPackAlignment with AddAlignmentAttributesForRecord, which  
							
							... 
							
							
							
							exposes less details.
llvm-svn: 104797 
							
						 
						
							2010-05-27 01:53:40 +00:00  
				
					
						
							
							
								 
						
							
								bd60652ace 
								
							 
						 
						
							
							
								
								Sema: Reject '#pragma options align=mac68k' everywhere except i386-apple-darwin.  
							
							... 
							
							
							
							llvm-svn: 104789 
							
						 
						
							2010-05-27 00:35:16 +00:00  
				
					
						
							
							
								 
						
							
								69dac58e7d 
								
							 
						 
						
							
							
								
								Sema: Support for #pragma options align={reset,natural}. '#pragma options align'  
							
							... 
							
							
							
							shares the stack with '#pragma pack', who knew!?
llvm-svn: 104786 
							
						 
						
							2010-05-27 00:04:40 +00:00  
				
					
						
							
							
								 
						
							
								bdb604a806 
								
							 
						 
						
							
							
								
								Protect isIntegerConstantExpr from seeing type- or value-dependent  
							
							... 
							
							
							
							expressions in attributes, pragmas.
llvm-svn: 104083 
							
						 
						
							2010-05-18 23:01:22 +00:00  
				
					
						
							
							
								 
						
							
								67c0087074 
								
							 
						 
						
							
							
								
								Rip out the last remaining implicit use of OverloadedFunctionDecl in Sema:  
							
							... 
							
							
							
							LookupResult::getAsSingleDecl() is no more.  Shift Sema::LookupSingleName to
return null on overloaded results.
llvm-svn: 90309 
							
						 
						
							2009-12-02 08:25:40 +00:00  
				
					
						
							
							
								 
						
							
								5cebab12d5 
								
							 
						 
						
							
							
								
								Split LookupResult into its own header.  
							
							... 
							
							
							
							llvm-svn: 89199 
							
						 
						
							2009-11-18 07:57:50 +00:00  
				
					
						
							
							
								 
						
							
								27b18f8144 
								
							 
						 
						
							
							
								
								Carry lookup configuration throughout lookup on the LookupResult.  Give  
							
							... 
							
							
							
							LookupResult RAII powers to diagnose ambiguity in the results.  Other diagnostics
(e.g. access control and deprecation) will be moved to automatically trigger
during lookup as part of this same mechanism.
This abstraction makes it much easier to encapsulate aliasing declarations
(e.g. using declarations) inside the lookup system:  eventually, lookup will
just produce the aliases in the LookupResult, and the standard access methods
will naturally strip the aliases off.
llvm-svn: 89027 
							
						 
						
							2009-11-17 02:14:36 +00:00  
				
					
						
							
							
								 
						
							
								9f3059a192 
								
							 
						 
						
							
							
								
								Refactor the LookupResult API to simplify most common operations.  Require users to  
							
							... 
							
							
							
							pass a LookupResult reference to lookup routines.  Call out uses which assume a single
result.
llvm-svn: 83674 
							
						 
						
							2009-10-09 21:13:30 +00:00  
				
					
						
							
							
								 
						
							
								11289f4280 
								
							 
						 
						
							
							
								
								Remove tabs, and whitespace cleanups.  
							
							... 
							
							
							
							llvm-svn: 81346 
							
						 
						
							2009-09-09 15:08:12 +00:00  
				
					
						
							
							
								 
						
							
								fb50bf5a6f 
								
							 
						 
						
							
							
								
								Per advice that Doug Gregor gave me several months ago, clean up the  
							
							... 
							
							
							
							implementation of '#pragma unused' by not constructing intermediate
DeclRefExprs, but instead do the name lookup directly.  The
implementation is greatly simplified.
Along the way, degrade '#pragma unused(undeclaredvariable)' to a
warning instead of being a hard error.  This implements:
<rdar://problem/6761874> [sema] allow #pragma unused to reference undefined variable (with warning)
llvm-svn: 78019 
							
						 
						
							2009-08-03 23:24:57 +00:00  
				
					
						
							
							
								 
						
							
								b4b64ca752 
								
							 
						 
						
							
							
								
								Remove the ASTContext parameter from the attribute-related methods of Decl.  
							
							... 
							
							
							
							The implementations of these methods can Use Decl::getASTContext() to get the ASTContext.
This commit touches a lot of files since call sites for these methods are everywhere.
I used pre-tokenized "carbon.h" and "cocoa.h" headers to do some timings, and there was no real time difference between before the commit and after it.
llvm-svn: 74501 
							
						 
						
							2009-06-30 02:34:44 +00:00  
				
					
						
							
							
								 
						
							
								78bd61f661 
								
							 
						 
						
							
							
								
								Move the static DeclAttrs map into ASTContext. Fixes <rdar://problem/6983177>.  
							
							... 
							
							
							
							llvm-svn: 73702 
							
						 
						
							2009-06-18 16:11:24 +00:00  
				
					
						
							
							
								 
						
							
								f718f0112e 
								
							 
						 
						
							
							
								
								Deallocate 'DeclRefExpr's in correctly formed '#pragma unused'  
							
							... 
							
							
							
							llvm-svn: 67573 
							
						 
						
							2009-03-23 22:50:47 +00:00  
				
					
						
							
							
								 
						
							
								fd14fade2f 
								
							 
						 
						
							
							
								
								Implement '#pragma unused'.  
							
							... 
							
							
							
							llvm-svn: 67569 
							
						 
						
							2009-03-23 22:28:25 +00:00  
				
					
						
							
							
								 
						
							
								e03c6102cc 
								
							 
						 
						
							
							
								
								Handle #pragma pack(0). I left this out of diagnostic because users should  
							
							... 
							
							
							
							really use pack() instead.
 - <rdar://problem/6650243> clang warns about '#pragma pack(0)'
llvm-svn: 66287 
							
						 
						
							2009-03-06 20:45:54 +00:00  
				
					
						
							
							
								 
						
							
								31180bbfb4 
								
							 
						 
						
							
							
								
								Make PragmaPackStack be a private class in SemaAttr and make its  
							
							... 
							
							
							
							instance in Sema be a pimpl.
llvm-svn: 64718 
							
						 
						
							2009-02-17 01:09:29 +00:00  
				
					
						
							
							
								 
						
							
								2eccbc1e5d 
								
							 
						 
						
							
							
								
								move attribute(packed) sema support out of SemaDecl into a new SemaAttr.cpp file.  
							
							... 
							
							
							
							llvm-svn: 64711 
							
						 
						
							2009-02-17 00:57:29 +00:00