37e0587839 
								
							 
						 
						
							
							
								
								remove the source location arguments to various target query methods.  
							
							... 
							
							
							
							llvm-svn: 47954 
							
						 
						
							2008-03-05 18:54:05 +00:00  
				
					
						
							
							
								 
						
							
								19fe116fc0 
								
							 
						 
						
							
							
								
								Handle simple asm statements correctly.  
							
							... 
							
							
							
							llvm-svn: 46777 
							
						 
						
							2008-02-05 23:03:50 +00:00  
				
					
						
							
							
								 
						
							
								284011b462 
								
							 
						 
						
							
							
								
								Rewriting of @synchronized. This has one FIXME in it. But this should allow @sychronized to be rewritten.  
							
							... 
							
							
							
							llvm-svn: 46533 
							
						 
						
							2008-01-29 22:59:37 +00:00  
				
					
						
							
							
								 
						
							
								48085b86ae 
								
							 
						 
						
							
							
								
								AST for @synchronized.  
							
							... 
							
							
							
							llvm-svn: 46524 
							
						 
						
							2008-01-29 19:14:59 +00:00  
				
					
						
							
							
								 
						
							
								a65e1f3b31 
								
							 
						 
						
							
							
								
								Move promoteExprToType from being a static method in SemaExpr.cpp to being  
							
							... 
							
							
							
							a method named ImpCastExprToType in Sema.
Use this method to insert implicit casts for case statements from their 
operand type to the condition type of the switch.  This fixes a crash on
test/CodeGen/statements.c, reported by Eli Friedman.
llvm-svn: 46083 
							
						 
						
							2008-01-16 19:17:22 +00:00  
				
					
						
							
							
								 
						
							
								939776756f 
								
							 
						 
						
							
							
								
								Recover from user typo not having proper @interface decl and a bad foreach decl.  
							
							... 
							
							
							
							llvm-svn: 45839 
							
						 
						
							2008-01-10 20:33:58 +00:00  
				
					
						
							
							
								 
						
							
								82ae0152a7 
								
							 
						 
						
							
							
								
								Allow messaging expression as foreach's collection expression.  
							
							... 
							
							
							
							llvm-svn: 45793 
							
						 
						
							2008-01-10 00:24:29 +00:00  
				
					
						
							
							
								 
						
							
								1b0ea82459 
								
							 
						 
						
							
							
								
								Substituted all instances of the string "Objc" for "ObjC".  This fixes  
							
							... 
							
							
							
							some naming inconsistencies in the names of classes pertaining to Objective-C
support in clang.
llvm-svn: 45715 
							
						 
						
							2008-01-07 19:49:32 +00:00  
				
					
						
							
							
								 
						
							
								fef287cb67 
								
							 
						 
						
							
							
								
								Issue diagnostics if more than one declaration in objectove-c's foreach-stmt header.  
							
							... 
							
							
							
							llvm-svn: 45708 
							
						 
						
							2008-01-07 17:52:35 +00:00  
				
					
						
							
							
								 
						
							
								7b1b947ca1 
								
							 
						 
						
							
							
								
								twiks based on Chris's comment. No need to iterate thru a list of declarations  
							
							... 
							
							
							
							in a foreach-statement which is illegal (but not yet caught) .
llvm-svn: 45615 
							
						 
						
							2008-01-05 01:40:08 +00:00  
				
					
						
							
							
								 
						
							
								bad3218954 
								
							 
						 
						
							
							
								
								Minor refactoring of foreach's semantics code per Chris's suggetion.  
							
							... 
							
							
							
							llvm-svn: 45604 
							
						 
						
							2008-01-04 23:59:09 +00:00  
				
					
						
							
							
								 
						
							
								9bad62c72a 
								
							 
						 
						
							
							
								
								Merge all the 'assignment' diagnostic code into one routine, decloning  
							
							... 
							
							
							
							it from several places.  This merges the diagnostics, making them more
uniform and fewer in number. This also simplifies and cleans up the code.
Some highlights:
1. This removes a bunch of very-similar diagnostics.
2. This renames AssignmentCheckResult -> AssignConvertType
3. This merges PointerFromInt + IntFromPointer which were always treated the same.
4. This updates a bunch of test cases that have minor changes to the produced diagnostics.
llvm-svn: 45589 
							
						 
						
							2008-01-04 18:04:52 +00:00  
				
					
						
							
							
								 
						
							
								775d5d02af 
								
							 
						 
						
							
							
								
								Patch to add semantics check for ObjC2's foreacn statement.  
							
							... 
							
							
							
							llvm-svn: 45561 
							
						 
						
							2008-01-04 00:27:46 +00:00  
				
					
						
							
							
								 
						
							
								0a788433eb 
								
							 
						 
						
							
							
								
								give better diagnostics for converting between function pointer and void*.  
							
							... 
							
							
							
							llvm-svn: 45556 
							
						 
						
							2008-01-03 22:56:36 +00:00  
				
					
						
							
							
								 
						
							
								732b8c2dc5 
								
							 
						 
						
							
							
								
								Patch to parse/build AST ObjC2's foreach statement.  
							
							... 
							
							
							
							llvm-svn: 45539 
							
						 
						
							2008-01-03 17:55:25 +00:00  
				
					
						
							
							
								 
						
							
								5b12ab8c93 
								
							 
						 
						
							
							
								
								Don't attribute in file headers anymore.  See llvmdev for the  
							
							... 
							
							
							
							discussion of this change.
llvm-svn: 45410 
							
						 
						
							2007-12-29 19:59:25 +00:00  
				
					
						
							
							
								 
						
							
								1f606a999e 
								
							 
						 
						
							
							
								
								Simplified setting up Method's scope before generating AST for its nody.  
							
							... 
							
							
							
							llvm-svn: 44576 
							
						 
						
							2007-12-04 19:20:11 +00:00  
				
					
						
							
							
								 
						
							
								0ee0b0ab8c 
								
							 
						 
						
							
							
								
								Move the null pointer constant check from Sema::CheckSingleInitializer/ActOnCallExpr/CheckMessageArgumentTypes/ActOnReturnStmt to Sema::CheckSingleAssignmentConstraints. This makes sure all null pointer assignments are considered compatible.  
							
							... 
							
							
							
							Thanks to Seo Sanghyeon for the bug, follow-through, and patch!
llvm-svn: 44366 
							
						 
						
							2007-11-27 17:58:44 +00:00  
				
					
						
							
							
								 
						
							
								f511f646a4 
								
							 
						 
						
							
							
								
								Add more semantic analysis for inline asm statements.  
							
							... 
							
							
							
							llvm-svn: 44349 
							
						 
						
							2007-11-27 04:11:28 +00:00  
				
					
						
							
							
								 
						
							
								290aa8560b 
								
							 
						 
						
							
							
								
								Check that the clobber registers are valid.  
							
							... 
							
							
							
							llvm-svn: 44311 
							
						 
						
							2007-11-25 00:25:21 +00:00  
				
					
						
							
							
								 
						
							
								660bdd1c87 
								
							 
						 
						
							
							
								
								Keep track of whether the asm is volatile or not.  
							
							... 
							
							
							
							llvm-svn: 44297 
							
						 
						
							2007-11-23 23:12:25 +00:00  
				
					
						
							
							
								 
						
							
								80a5ea3552 
								
							 
						 
						
							
							
								
								Check asm input and output expressions.  
							
							... 
							
							
							
							llvm-svn: 44289 
							
						 
						
							2007-11-23 19:43:50 +00:00  
				
					
						
							
							
								 
						
							
								94ea8aab34 
								
							 
						 
						
							
							
								
								Store output and input operands as well as clobber information in the AsmStmt. Ted, could you please review the serialization/deserialization code?  
							
							... 
							
							
							
							llvm-svn: 44266 
							
						 
						
							2007-11-22 01:36:19 +00:00  
				
					
						
							
							
								 
						
							
								81a5a69682 
								
							 
						 
						
							
							
								
								Store inline asm code in the AST.  
							
							... 
							
							
							
							llvm-svn: 44255 
							
						 
						
							2007-11-20 19:21:03 +00:00  
				
					
						
							
							
								 
						
							
								adfbbc3330 
								
							 
						 
						
							
							
								
								AST for objective-c's @throw statement and its pretty-printing.  
							
							... 
							
							
							
							llvm-svn: 43802 
							
						 
						
							2007-11-07 02:00:49 +00:00  
				
					
						
							
							
								 
						
							
								f859ef293c 
								
							 
						 
						
							
							
								
								AST for  @try  statement.  
							
							... 
							
							
							
							llvm-svn: 43640 
							
						 
						
							2007-11-02 15:39:31 +00:00  
				
					
						
							
							
								 
						
							
								71234d8a9e 
								
							 
						 
						
							
							
								
								AST for  @finally  statement.  
							
							... 
							
							
							
							llvm-svn: 43629 
							
						 
						
							2007-11-02 00:18:53 +00:00  
				
					
						
							
							
								 
						
							
								9e63b98de7 
								
							 
						 
						
							
							
								
								AST build for  @catch  clause (this is work in progress).  
							
							... 
							
							
							
							llvm-svn: 43628 
							
						 
						
							2007-11-01 23:59:59 +00:00  
				
					
						
							
							
								 
						
							
								73c56c0735 
								
							 
						 
						
							
							
								
								Implement *skeletal* support for representing GNU inline asm stmts in the AST,  
							
							... 
							
							
							
							resolving a crash on a .i file in PR1750.  We now generate 49 errors on the
.i file in that bug.
llvm-svn: 43433 
							
						 
						
							2007-10-29 04:04:16 +00:00  
				
					
						
							
							
								 
						
							
								db83d77c78 
								
							 
						 
						
							
							
								
								Emit a warning when the body of an if block is a NullStmt.  
							
							... 
							
							
							
							llvm-svn: 42840 
							
						 
						
							2007-10-10 20:50:11 +00:00  
				
					
						
							
							
								 
						
							
								ef6b136781 
								
							 
						 
						
							
							
								
								move IdentifierTable.h from liblex to libbasic.  
							
							... 
							
							
							
							llvm-svn: 42730 
							
						 
						
							2007-10-07 08:58:51 +00:00  
				
					
						
							
							
								 
						
							
								4b2ff02f72 
								
							 
						 
						
							
							
								
								Make case sorting deterministic by not depending on pointer  
							
							... 
							
							
							
							values.  Patch mostly by Gabor Greif for PR1682.
llvm-svn: 42203 
							
						 
						
							2007-09-21 18:15:22 +00:00  
				
					
						
							
							
								 
						
							
								66356bda5d 
								
							 
						 
						
							
							
								
								Rename statement actions (from Parse-prefix to ActOn-prefix).  
							
							... 
							
							
							
							llvm-svn: 42000 
							
						 
						
							2007-09-16 14:56:35 +00:00  
				
					
						
							
							
								 
						
							
								0a6b11db24 
								
							 
						 
						
							
							
								
								Updated VC++ build system.  
							
							... 
							
							
							
							Silenced a couple of VC++ warnings.
llvm-svn: 41994 
							
						 
						
							2007-09-16 00:04:22 +00:00  
				
					
						
							
							
								 
						
							
								a23cc79654 
								
							 
						 
						
							
							
								
								Move Decl::NextDeclarator (w/ setters/getters) down to ScopedDecl/FieldDecl.  
							
							... 
							
							
							
							Decl is now svelte:-)
llvm-svn: 41935 
							
						 
						
							2007-09-13 23:52:58 +00:00  
				
					
						
							
							
								 
						
							
								9def2b15c1 
								
							 
						 
						
							
							
								
								Phase 2 of making the Decl class more lightweight...  
							
							... 
							
							
							
							Move Identifier/Loc instance variables (and associated getters/setters) down from Decl to ScopedDecl/FieldDecl.
Objc AST's can now inherit from Decl without getting instance variables and types that are C specific. For now, I am keeping NextDeclarator, since I believe it may be useful to ObjC. If not, it can be moved later.
llvm-svn: 41934 
							
						 
						
							2007-09-13 21:41:19 +00:00  
				
					
						
							
							
								 
						
							
								73c18e0362 
								
							 
						 
						
							
							
								
								Added LabelLoc to GotoStmt to record the source location of the label token  
							
							... 
							
							
							
							in the actual GotoStmt.
Fixed bug where GotoStmt::getSourceRange incorrectly used the target LabelStmt
to compute its extent.
llvm-svn: 41745 
							
						 
						
							2007-09-06 17:11:52 +00:00  
				
					
						
							
							
								 
						
							
								1463cca1cc 
								
							 
						 
						
							
							
								
								Add a method required by the VC++ STL, patch by Hartmut Kaiser!  
							
							... 
							
							
							
							llvm-svn: 41687 
							
						 
						
							2007-09-03 18:31:57 +00:00  
				
					
						
							
							
								 
						
							
								42a350a18a 
								
							 
						 
						
							
							
								
								Finish converting SwitchStmt AST to source ranges.  
							
							... 
							
							
							
							Move DumpSourceRange() to DumpStmt().
Now -parse-ast-dump will display source range info for all stmts/exprs.
One day we should implement the source range protocol for Decls.
llvm-svn: 41670 
							
						 
						
							2007-09-01 21:08:38 +00:00  
				
					
						
							
							
								 
						
							
								dc9f36e6c4 
								
							 
						 
						
							
							
								
								Convert more statments over to SourceRanges...  
							
							... 
							
							
							
							llvm-svn: 41666 
							
						 
						
							2007-08-31 23:49:30 +00:00  
				
					
						
							
							
								 
						
							
								33f3d05081 
								
							 
						 
						
							
							
								
								Move SourceRange protocol from Expr->Stmt.  
							
							... 
							
							
							
							Converted many of the statements over. Still a hanful left...
llvm-svn: 41663 
							
						 
						
							2007-08-31 23:28:33 +00:00  
				
					
						
							
							
								 
						
							
								cac27a5478 
								
							 
						 
						
							
							
								
								Fix a bug/missing-feature Ted noticed: the 'unused' warning should not  
							
							... 
							
							
							
							warn about the last stmt in a stmtexpr, f.e. there should be no warning for:
int maxval_stmt_expr(int x, int y) {
  return ({int _a = x, _b = y; _a > _b ? _a : _b; });
}
llvm-svn: 41655 
							
						 
						
							2007-08-31 21:49:55 +00:00  
				
					
						
							
							
								 
						
							
								24b51ff752 
								
							 
						 
						
							
							
								
								Emit a slightly better warning for unused values for unary and binary operators:  
							
							... 
							
							
							
							t2.c:3:18: warning: expression result unused
     x = ++x, ++y, y+2;
     ~~~~~~~~~~~~^ ~~~
llvm-svn: 41551 
							
						 
						
							2007-08-28 18:40:30 +00:00  
				
					
						
							
							
								 
						
							
								39f920f35b 
								
							 
						 
						
							
							
								
								now that all the infrastructure is in place, enforce C99 6.8.5p3.  
							
							... 
							
							
							
							Note the FIXME: we need some way to mark a decl erroneous :)
llvm-svn: 41524 
							
						 
						
							2007-08-28 05:03:08 +00:00  
				
					
						
							
							
								 
						
							
								773c0596b8 
								
							 
						 
						
							
							
								
								If the condition of a for statement is promoted, make sure the  
							
							... 
							
							
							
							implicit cast gets linked back into the AST.
llvm-svn: 41523 
							
						 
						
							2007-08-28 04:55:47 +00:00  
				
					
						
							
							
								 
						
							
								d864daf5c6 
								
							 
						 
						
							
							
								
								extwarn about decls intermixed with code in c89 mode.  
							
							... 
							
							
							
							llvm-svn: 41477 
							
						 
						
							2007-08-27 04:29:41 +00:00  
				
					
						
							
							
								 
						
							
								dfaf9f8c2f 
								
							 
						 
						
							
							
								
								implement a fixme: __extension__ marker on decls in compound stmts.  
							
							... 
							
							
							
							llvm-svn: 41473 
							
						 
						
							2007-08-27 01:01:57 +00:00  
				
					
						
							
							
								 
						
							
								9decfbabd3 
								
							 
						 
						
							
							
								
								Fix a bug reported by Keith Bauer  
							
							... 
							
							
							
							llvm-svn: 41452 
							
						 
						
							2007-08-26 17:32:59 +00:00  
				
					
						
							
							
								 
						
							
								247ef955bc 
								
							 
						 
						
							
							
								
								in the truncation case, make sure to propagate the sign correctly, this  
							
							... 
							
							
							
							fixes an assertion on:
void f (int z) { switch (z) { case ~0ULL: case -1: return; } }
testcase from Neil.
llvm-svn: 41343 
							
						 
						
							2007-08-23 22:08:35 +00:00  
				
					
						
							
							
								 
						
							
								67998451c7 
								
							 
						 
						
							
							
								
								finish off switch case overlap checking, adding support for  
							
							... 
							
							
							
							verifying case ranges.
llvm-svn: 41331 
							
						 
						
							2007-08-23 18:29:20 +00:00